バーを矢印キーで操作する

バーをキーボードの左右の矢印キーで動かすために、C#スクリプトを作成します。

1.スクリプトを作成する

ヒエラルキーでバーのオブジェクトを選択します。

バーを選択 → Inspector → Add Component → New Script → スクリプトに名前を付ける

作成したスクリプトは、Projectウィンドウの「Assets」の中に保存されます。

作成済みのスクリプトがある場合は、「Add Component」の検索欄にスクリプト名を入力すると、簡単に追加できます。

2.StartとUpdateの違い

Unityのスクリプトでは、よく次の2つのメソッドを使用します。

Start()
ゲーム開始時に基本的に1回だけ実行されます。

Update()
ゲーム中、基本的に毎フレーム実行されます。

矢印キーの入力はゲーム中ずっと確認する必要があるので、バーを動かすプログラムはUpdate()の中に書きます。

3.speedを宣言する

バーの移動速度を設定するために、speedという変数を作ります。

Update()の外側に次のように書きます。

public float speed = 5.0f;

publicにしておくと、UnityのInspectorからspeedの値を変更できるようになります。

そのため、プログラムを書き直さなくても、実際にゲームを動かしながらバーの速度を調整できます。

4.左右の矢印キーの入力を取得する

Update()の中に次のコードを書きます。

float myX = Input.GetAxis("Horizontal");

Horizontalは左右方向の入力を取得します。

通常は、

←キー:マイナス方向

→キー:プラス方向

として値を取得できます。

5.バーを左右に動かす

取得した値を使って、バーの位置を変更します。

transform.position += new Vector3(myX * speed, 0, 0) * Time.deltaTime;

myXが左右の入力、speedが移動速度です。

Time.deltaTimeを掛けることで、フレームレートの違いによって移動速度が大きく変わるのを防ぎます。

完成したスクリプト

using UnityEngine;

public class BarController : MonoBehaviour
{
    public float speed = 5.0f;

    void Start()
    {

    }

    void Update()
    {
        float myX = Input.GetAxis("Horizontal");

        transform.position +=
            new Vector3(myX * speed, 0, 0) * Time.deltaTime;
    }
}

このスクリプトをバーに設定してゲームを実行すると、左右の矢印キーでバーを動かせるようになります。

コメント

タイトルとURLをコピーしました