Unity3D培训
美国上市Unity3D培训机构

400-111-8989

VR培训

Unity3D脚本:飞行模拟的实现代码

  • 发布:Unity3D培训
  • 来源:Unity3D教程
  • 时间:2016-03-09 17:18

001

#pragma strict

002

 

003

var box:GameObject;

004

 

005

private var forceHead:Transform;

006

 

007

private var forceLeftAirfoil:Transform;

008

 

009

private var forceRightAirfoil:Transform;

010

 

011

private var forceLeftTailAirfoil:Transform;

012

 

013

private var forceRightTailAirfoil:Transform;

014

 

015

private var thisTransform:Transform;

016

 

017

private var thisRigidbody:Rigidbody;

018

 

019

private var _speed:float = 250.0f;

020

 

021

function Start ()

022

 

023

{

024

 

025

box = GameObject.Find("Plane");

026

 

027

forceHead = transform.Find("ForceHead");

028

 

029

forceLeftAirfoil = transform.Find("ForceLeftAirfoil");

030

 

031

forceRightAirfoil = transform.Find("ForceRightAirfoil");

032

 

033

forceLeftTailAirfoil = transform.Find("ForceLeftTailAirfoil");

034

 

035

forceRightTailAirfoil = transform.Find("ForceRightTailAirfoil");

036

 

037

thisTransform = this.transform;

038

 

039

thisRigidbody = this.rigidbody;

040

 

041

}

042

 

043

function FixedUpdate ()

044

 

045

{

046

 

047

thisRigidbody.AddForceAtPosition(thisTransform.forward * this._speed, forceHead.position);

048

 

049

thisRigidbody.AddForceAtPosition(thisTransform.up * 11.0f, forceLeftAirfoil.position);

050

 

051

thisRigidbody.AddForceAtPosition(thisTransform.up * 11.0f, forceRightAirfoil.position);

052

 

053

thisRigidbody.AddForceAtPosition(thisTransform.up * 5.0f, forceLeftTailAirfoil.position);

054

 

055

thisRigidbody.AddForceAtPosition(thisTransform.up * 5.0f, forceRightTailAirfoil.position);

056

 

057

if(Input.GetKey(KeyCode.W))

058

 

059

{

060

 

061

// 俯冲

062

 

063

thisRigidbody.AddForceAtPosition(thisTransform.up * 5.0f, forceLeftTailAirfoil.position);

064

 

065

thisRigidbody.AddForceAtPosition(thisTransform.up * 5.0f, forceRightTailAirfoil.position);

066

 

067

}

068

 

069

else if(Input.GetKey(KeyCode.S))

070

 

071

{

072

 

073

// 爬升

074

 

075

thisRigidbody.AddForceAtPosition(thisTransform.up * -5.0f, forceLeftTailAirfoil.position);

076

 

077

thisRigidbody.AddForceAtPosition(thisTransform.up * -5.0f, forceRightTailAirfoil.position);

078

 

079

}

080

 

081

else if(Input.GetKey(KeyCode.A))

082

 

083

{

084

 

085

// 左翻滚

086

 

087

thisRigidbody.AddForceAtPosition(thisTransform.up * -5.0f, forceLeftTailAirfoil.position);

088

 

089

thisRigidbody.AddForceAtPosition(thisTransform.up * 5.0f, forceRightTailAirfoil.position);

090

 

091

}

092

 

093

else if(Input.GetKey(KeyCode.D))

094

 

095

{

096

 

097

// 右翻滚

098

 

099

thisRigidbody.AddForceAtPosition(thisTransform.up * 5.0f, forceLeftTailAirfoil.position);

100

 

101

thisRigidbody.AddForceAtPosition(thisTransform.up * -5.0f, forceRightTailAirfoil.position);

102

 

103

}

104

 

105

}

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Unity3D脚本:读取外部文件夹的多张JPG图片到材质
下一篇:Unity3D脚本:给克隆出来的物体附加不同脚本
玩微信《落地成箱》游戏攻略

玩微信《落地成箱》游戏攻略

游戏开发Unity VS Unreal如何选择引擎?

游戏开发Unity VS Unreal如何选择引擎?

游戏角色阴影如何用Unity3D添加?

游戏角色阴影如何用Unity3D添加?

Unity 2018.3一次开发支持多个VR平台

Unity 2018.3一次开发支持多个VR平台

选择城市和中心
贵州省

广西省

海南省