成都unity3d培训
达内成都会计中心

13408446380

热门课程

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

  • 时间:2016-04-11 15:20
  • 发布:达内杨老师
  • 来源:达内

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图片到材质
选择城市和中心
贵州省

广西省

海南省