キーボードの入力を受け付けて戦車が動くようにします。
戦車はあらかじめ、アセットストア等で用意しましょう。
今回は、名前を「Tank」とします。
1)Rigidbodyをつける。
まず、「Tank」オブジェクトに「Rigidbody」コンポーネントをつけましょう。
Rigidbodyには「重力」の機能も含まれます。
そのため、『当たり判定用の枠=Collider』がオブジェクトに付いていないと、ゲームを再生した瞬間にすり抜けて落ちていきます。
その場合には「Box Collider」を設定しましょう。
*Colliderの「大きさはざっくり」、「位置はグラウンドにぴったり」にするのがポイントです。
2)戦車を動かすスクリプトを作成する。
・「C# Script」を1つ作成し、名前を「TankMovement」に変更します。
・作成した「TankMovement」スクリプトをダブルクリックしてください。
・下記のコードを記載しましょう。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TankMovement : MonoBehaviour { public float moveSpeed; public float turnSpeed; private Rigidbody rb; private float movementInputValue; private float turnInputValue; void Start() { rb = GetComponent<Rigidbody>(); } void Update() { Move(); Turn(); } void Move() { movementInputValue = Input.GetAxis("Vertical"); Vector3 movement = transform.forward * movementInputValue * moveSpeed * Time.deltaTime; rb.MovePosition(rb.position + movement); } void Turn() { turnInputValue = Input.GetAxis("Horizontal"); float turn = turnInputValue * turnSpeed * Time.deltaTime; Quaternion turnRotation = Quaternion.Euler(0, turn, 0); rb.MoveRotation(rb.rotation * turnRotation); } }
コードが書けたらチェック。
オブジェクトに設定。
MoveSpeedとTurnSpeedの設定は自由(色々試してみましょう)
設定が完了したらゲーム再生。
キーボードの十字キーの上下で前進・後退。
左右キーで旋回すれば成功です。
*キッズ・レギュラークラスでは、Unityを使った戦車ゲームを作成します。もし、もっと学んでみたい方はレギュラークラスに参加してみてください。