2012年5月22日火曜日

Unity: Transform.LookAt()の回転軸を制限する

GameObjectの向きを別のGameObjectの方へ向かせるには、LookAt()という便利な関数が存在します。
// Transform型を渡す方法
gameObjA.transform.LookAt(gameObjB.transform);

// Vector3型を渡す方法
gameObjA.transform.LookAt(gameObjB.transform.position);
こうすることでgameObjAの「前」が、gameObjBの方へ向きます。

Unityでの「前」とは、エディター上でオブジェクトを選択した時の青い矢印の向きで現されます。
forward.jpg
※なお上図では、少年の背中の方が「前」になっているので、ご注意ください。

LookAt()の回転軸を制限する

gameObjAの回転させる軸を制限させてみます。
以下のスクリプトの例では、2次元(Y軸)の回転に制限しています。
Vector3 targetPos = gameObjB.transform.position;
// ターゲットのY座標を自分と同じにすることで2次元に制限する。
targetPos.y = gameObjA.transform.position.y;
gameObjA.transform.LookAt(targetPos);

関連記事

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...