[Unity] MovePosition, position, RotateAround 円運動させる

GameObjectを円運動させたいケースがあります。円運動としては、数学的に sin, cos の三角関数を使うか、あるいは角度として0 -> 360°の変化から実現する方法があります。
 
circle3

Unity 2017.1




円運動

 
円柱、Cylinder の周りを球体、Sphere が回転運動をするように作成してみますので、それぞれオブジェクトを作ります。
 

 

 

Rigidbody.MovePosition

 
MovePosition(Vector3 position) を使ってオブジェクトを移動させます。その移動位置と時間Time.timeで変化させて sin, cos を使い円運動をさせます。
 
Circle1.cs

 
Rigidbody の interpolation (補間)設定するとよりスムーズな描画となります。
スクリプトをSphereにドラッグ&ドロップで関連付けしてRbodyはSphereで設定します。
 

 
これでGameでrunさせると球体が円柱を回りだします。
 
circle3

 

Transform.position

 
ワールド空間の Transform の位置を設定します。
位置を時間で変化させsin,cosで円運動させるところはMovePositionと同じです。
 
Circle2.cs

 

Transform.RotateAround

 
ワールド座標の point を中心とした軸( axis )で angle 度回転させます
point となる対象を設定できます
 
今回の場合はCylinderをGameObject gObject に設定すればSphereをCylinderの周りを回るようにできます
 

 
Circle3.cs

 
 
References:
Rigidbody.MovePosition
Transform.position
Transform.RotateAround

ページのトップへ戻る





シェアする

  • このエントリーをはてなブックマークに追加

フォローする