ゲームオブジェクトに設定された Transform
コンポーネントを操作することで、ゲームオブジェクトを移動させることができます。
Transform
コンポーネントのオブジェクトは下記のいずれかの方法で取得できます。
Transform クラス には、ゲームオブジェクトを移動させるためのプロパティやメソッドが定義されています。
Transform.position
プロパティは、ワールド座標でのオブジェクトの位置を示します。
次の例では、3 つのオブジェクトの X 座標を -2、0、2 に設定しています。
+=
演算子や -=
演算子を使用すれば、指定した数値分だけワールド座標での位置を移動できます。
X、Y、Z 軸方向にだけ動かしたい場合は、Vector3
クラスに用意されている次のような定数を利用できます。
定数 | 値 |
---|
Vector3.left | Vector3(-1, 0, 0) |
Vector3.right | Vector3(1, 0, 0) |
Vector3.up | Vector3(0, 1, 0) |
Vector3.down | Vector3(0, -1, 0) |
Vector3.forward | Vector3(0, 0, 1) |
Vector3.back | Vector3(0, 0, -1) |
親オブジェクトからの相対位置(ローカル座標)で位置を指定したい場合は、Transform.position
プロパティの代わりに、Transform.localPosition
プロパティを指定します。
次の例では、親オブジェクト (Cube) に対して、子オブジェクト (Sphere と Capsule) を、それぞれローカル座標とグローバル座標で位置指定した場合の違いを示しています。
子 Sphere (child1
) はローカル座標で位置を指定しているので、親 Cube からの相対的な座標で右に表示されています。
一方、子 Capsule (child2
) はグローバル座標で位置を指定しているので、親 Cube の位置に関係なく、X = 2 の位置に表示されています。
現在の位置から移動量を指定して移動するには、Transform.Translate() メソッド を使用します。
Space
型の relativeTo
パラメータでは、ローカル座標 (Space.Self
) かワールド座標 (Space.World
) のどちらで移動させるかを指定します。
デフォルトではローカル座標 (Space.Self
) になっているので、自分自身のオブジェクトが向いている方向に応じた移動を行います。
次のサンプルコードでは、Cube オブジェクトを左右に行ったり来たりさせています。
関連記事