(5)戦車を動かす(前進・後退・旋回)

キーボードの入力を受け付けて戦車が動くようにします。

1)Rigidbodyをつける。

まず、「Tank」オブジェクトに「Rigidbody」コンポーネントをつけましょう。

2)戦車を動かすスクリプトを作成する。

「C# Script」を1つ作成し、名前を「TankMovement」に変更します。

・作成した「TankMovement」スクリプトをダブルクリックしてください。

・下記のコードを記載しましょう。

*横スクロールするとコードの全体を見ることができます。

using UnityEngine;
using System.Collections;

public class TankMovement : MonoBehaviour {

	public float moveSpeed;
	public float turnSpeed;

	private Rigidbody rb;
	private float movementInputValue;
	private float turnInputValue;

	void Awake(){
		rb = GetComponent<Rigidbody>();
	}

	void Update () {

		movementInputValue = Input.GetAxis("Vertical");
		turnInputValue = Input.GetAxis("Horizontal");

	}

	void FixedUpdate(){
		Move();  // Move関数(命令ブロック)を呼び出す
		Turn();  // Turn関数(命令ブロック)を呼び出す
	}


	// 前進・後退の命令ブロック
	void Move(){

		Vector3 movement = transform.forward * movementInputValue * moveSpeed * Time.deltaTime;

		rb.MovePosition(rb.position + movement);
	}


	// 旋回の命令ブロック
	void Turn(){

		float turn = turnInputValue * turnSpeed * Time.deltaTime;

		Quaternion turnRotation = Quaternion.Euler(0f, turn, 0f);

		rb.MoveRotation(rb.rotation * turnRotation);

	}
}
3)スクリプトをオブジェクトにつける

・スクリプトが完成したら、「Tank(プレーヤー)」にドラッグ&ドロップしましょう。

「Move Speed」は「戦車の移動速度」、「Turn Speed」は「戦車の旋回速度」です。

・ここには全体のバランスを考えながら好きな数字を入れてみましょう。

スクリーンショット 2016-07-08 15.54.14

ここまで出来たら再生ボタンを押して実行してみましょう。

上下の矢印で前後に動いて、左右の矢印で旋回できたら成功です。