Menu
CoddyTech

進行方向を変える

Coddyの「Unityゲーム:3Dスネーク」コースのレッスン 2/14。

ヘビは矢印キーまたはWASDで曲がります。カメラは盤面を手前の端から見下ろしているため、画面の上方向は +z、Vector3.forward に沿っており、下方向は Vector3.back です。Vector3.up は空を指します。頭をその方向に動かすと、盤面から浮き上がってしまいます。

曲がるのはキーを押したときに1回だけなので、wasPressedThisFrame でキーを読み取ります。キーを押しても変わるのは direction だけです。Step() は次のティックで、引き続き頭を動かします。

Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
    direction = Vector3.right;
}

矢印キーとその文字キーは、|| でつなぐ2つのキーです。キーボードのないデバイスでは Keyboard.current が null になるため、最初に一度確認してください。

challenge icon

チャレンジ

簡単

矢印キーまたはWASDキーでヘビを操作します。

  1. Snakeにusing UnityEngine.InputSystem;を追加します。
  2. Update()の先頭でKeyboard.currentを読み取ります。上またはWキーでdirection = Vector3.forward、下またはSキーでVector3.back、左またはAキーでVector3.left、右またはDキーでVector3.rightを設定します。
  3. Step()はそのままにします。頭の向きは次のティックで変わります。

「プレイ」を押し、ゲームをクリックして操作します。頭の向きは次のステップで変わります。その後、「確認」を押します。

自分で試してみよう

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // 2回のステップの間隔(秒)
    private float timer;
    private Vector3 direction = Vector3.right;

    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= tick)
        {
            timer -= tick;
            Step();
        }
    }

    void Step()
    {
        transform.position += direction;
    }
}

Unityゲーム:3Dスネークのすべてのレッスン

自分で練習してみよう: Unityプレイグラウンド