AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

ヘリコプターを飛ばしてみる

f:id:yasu9780:20150506015408p:plain

こちらのFreeのヘリコプターを利用して
https://www.assetstore.unity3d.com/en/#!/content/8128

ヘリコプターを飛ばしてみました。


ローターは分離されてるので、ローターを回します。

rb = GetComponent<Rigidbody>();
rotor = GameObject.Find("Rotor_Control");
ry=0f;
void Update () {
	ry += 30f;//Time.deltaTime * speed;
	rotor.transform.rotation = Quaternion.Euler(270, ry, 0);
}

肝心のヘリの操縦ですが

まず、離陸w

if (Input.GetKey (KeyCode.Space)) {
	rb.AddForce( transform.up * 20f );
}

矢印キーの上・後ろで、前進・後進
要はヘリを傾ける+落ちない程度に揚力
(揚力はヘリ機体に垂直にかけてるので、傾けると傾けたほうに進む)

float v = Input.GetAxis ("Vertical");
if( v>0.1 )
{
	rx = -20f;
	rb.AddForce( transform.up * 8f );
}
else if( v<-0.1 )
{
	rx = 20f;
	rb.AddForce( transform.up * 8f );
}
else
{
	rx=0;
}

旋回は、

transform.rotation = Quaternion.Euler( new Vector3(rx,ry2,0) );
float h = Input.GetAxis ("Horizontal");
if( h>0.1f )
{
	ry2+=1;
}
else if( h<-0.1f )
{
	ry2-=1;
}

いくらなんでも単純すぎるかww