ゲームオブジェクトに設定された Transform
コンポーネントを操作することで、ゲームオブジェクトを回転させることができます。
Transform
コンポーネントのオブジェクトは下記のいずれかの方法で取得できます。
Transform クラス には、ゲームオブジェクトを回転させるためのプロパティやメソッドが定義されています。
Transform.rotation
プロパティは、ワールド座標でのオブジェクトの回転角度を示します。
次の例では、Y 軸(上下方向)を中心とした回転角度を 45° に設定しています。
Transform.rotation
プロパティには Quaternion オブジェクト を設定するのですが、上記のように Quaternion.Euler() 関数 を使用すると、直感的に Quaternion オブジェクトを生成することができます。
オブジェクト自身の向きを考慮した軸(ローカル座標)での回転角度を設定するには、Transform.rotation
プロパティの代わりに、 Transform.localRotation
プロパティを使用します。
次の例では、親 Cube の上下に子 Cube を配置し、それぞれ Y 軸の回転角度として 30° を設定しています。
ただし、上の Cube は localRotation
プロパティ、下の Cube は rotation
プロパティで回転角度を設定しています。
親オブジェクトを回転させると、子オブジェクトもそれに追従して回転します。
上の Cube は親オブジェクトの回転角度 30° をベースとして、自分自身の回転角度 (localRotation
) の 30° で回転しているので、合計 60° の回転角度になっています。
一方、下の Cube はグローバル座標の回転角度 (rotation
) を 30° に設定しているので、結局、親 Cube と同じ 30° しか回転していません。
現在の回転角度からの回転量を指定して回転させるには、Transform.Rotate() メソッド を使用します。
relativeTo
パラメータに Space.World
を指定すると、ワールド座標の軸方向をベースにして回転角度を指定することができます。
デフォルトは Space.Self
になっており、自分自身の向き(ローカル座標)を考慮した回転角度を指定します。
次の例では、Cube オブジェクトを Y 軸を中心に 1 秒間に 90° 回転させています。
関連記事