方向
CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 18/67。
Unity では、長さがそれぞれ 1 単位の6方向に名前が付いています。
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 方向です。次のレッスンでは、オブジェクトが向いている方向に移動させます。
チャレンジ
簡単矢印キーでクレーンのフックを、1秒あたりspeed単位の速度で動かします。右矢印と左矢印でx軸に沿って右と左に動かし、上矢印で上げ、下矢印で下げます。Unityの名前付き方向を使います。キーを押していないときは、その場にとどまります。
Playを押してフックを操作し、次にCheckを押します。
自分で試してみよう
using UnityEngine;
public class Hook : MonoBehaviour
{
public float speed = 2f;
void Update()
{
// 右/左矢印キー:x軸に沿って移動。上/下矢印キー:上下に移動。
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。