Unity事例ノート

UNITY

キャラクターを円状に動かす方法2

前回記事、円状に動かす1 では、円運動したものの、ロボットの向きが一定方向でした。

進行方向へ顔を向けて円運動するように、スクリプトを書いていきましょう。

オブジェクトを中心にする

軸を中心に回転させるため、Transform.RotateAround を使います。

Cubeオブジェクトを用意しましょう。

これを中心点として扱います。

RotateMove.csを作成し、ロボットに追加しました。

ロボットを選択し、インスペクターを確認。

ターゲットの項目が表示されますので、中心点であるCubeを入れます。

実行してみましょう。

RotateAroundには、中心点、軸、回転角度、を順番に入れます。

軸は Vector3.upということで、Yを軸として回転。

回転角度はこの場合、50°ずつ回転して動きます。

Time.deltaTimeを掛けることで、スムーズに動いています。

もしTime.deltaTimeが無ければ…。

50°回転し続けるとは、こういうことになるんですね。

特定の座標を中心にする

オブジェクトではなく、座標による中心点の指定もできます。

Cubeを削除して、ロボットを(X:0 Y:0 Z:0)に配置しましょう。

中心点を、(X:5 Y:0 Z:0)にしてみます。

RotateMove.csをこのように書き変えました。

実行してみましょう。

オブジェクトが無くても、円状の動きができています。