(Unity)戦車を前進・後退・旋回させる

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

戦車はあらかじめ、アセットストア等で用意しましょう。

今回は、名前を「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を使った戦車ゲームを作成します。もし、もっと学んでみたい方はレギュラークラスに参加してみてください。


Unityで学ぶキッズ・プログラミングスクール