Menu
CoddyTech

方向

CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 25/85。

Unityには、6つの方向を表す名前があり、それぞれの長さは1単位です:

  • Vector3.right (1, 0, 0) と Vector3.left (-1, 0, 0)
  • Vector3.up (0, 1, 0) と Vector3.down (0, -1, 0)
  • Vector3.forward (0, 0, 1) と Vector3.back (0, 0, -1)

また、Vector3.zero (0, 0, 0) と Vector3.one (1, 1, 1) もあります。それぞれの方向の長さは1単位なので、方向に速度を掛けると、ちょうどその速度分だけ移動します。このカタツムリは、毎秒0.5単位の速さでカメラから遠ざかります:

public float speed = 0.5f;

void Update()
{
    transform.position += Vector3.forward * speed * Time.deltaTime;
}

これはnew Vector3(0, 0, speed * Time.deltaTime)と同じ移動ですが、方向を使うほうが読みやすく、誤った軸に設定しにくくなります。マイナス記号を付けると方向が反転します:-Vector3.forwardはVector3.backです。これらの方向はオブジェクトではなくワールドに属します。つまり、カタツムリが反対を向いていても、Vector3.forwardはワールドのz方向です。次のレッスンでは、オブジェクトを向いている方向に移動させます。

challenge icon

チャレンジ

簡単

Unityの名前付き方向を使って、4つの矢印キーでクレーンのフックを動かしましょう。

  1. Update()で、各矢印キーに対してInput.GetKeyを使うifを1つずつ書きましょう。
  2. それぞれの方向にspeed * Time.deltaTimeを掛けた値を加えます。Vector3.right、Vector3.left、Vector3.upまたはVector3.downを使います。たとえば、transform.position += Vector3.up * speed * Time.deltaTime;のようにします。

「プレイ」を押して操作してみましょう。フックが滑り、上昇し、下降します。その後、「確認」を押しましょう。

自分で試してみよう

using UnityEngine;

public class Hook : MonoBehaviour
{
    public float speed = 2f;

    void Update()
    {
        // 右/左矢印キー:x軸に沿ってスライド。上/下矢印キー:上下に動かす。
    }
}

Unityスクリプトの基礎のすべてのレッスン

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