Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Unity(初心者向き)】ゲームオブジェクトの向きを変えさせる便利な方法について

 

Unityの回転や角度についてもう1つですが、オブジェクトの向きを指定する時に便利で使えそうなものがいくつかありますので備忘録として載せておきたいと思います。

 

 

1.あるゲームオブジェクトの方向へ向かせる

 

 

1つ目はあるゲームオブジェクトの方向を向かせるというものです。

transform.LookAt ()

を使用します。

以下にて該当のオブジェクトがobjというターゲットオブジェクトの方向へ向きを変えます。

 

transform.LookAt ( obj.transform.position ); // objはGameObject型
 
 
2.ゆっくりとあるゲームオブジェクトの方向へ向かせる

 

ゆっくりとあるゲームオブジェクトの向きへ向かせたい場合は、以下のように

Quaternion.RotateTowards ()

を使用します。

 

 

 transform.rotation = Quaternion.RotateTowards ( transform.rotation, 
Quaternion.LookRotation( obj.transform.position - transform.position ),
 120.0f * Time.deltaTime );

 

 

この例ではobjが向かせようとするターゲットのオブジェクトになります。

obj.transform.position - transform.position

でターゲットの方向をVector3型で算出しています。

 

続いて、

Quaternion.LookRotation( obj.transform.position - transform.position )

で、Vector3型を Quaternion形に変更しています。

 

Quaternion.RotateTowards ()

では、第1引数の向きから第2引数の向きへ第3引数の速度でゆっくりと向きを変えるということになります。

 

結果として、

 transform.rotation = Quaternion.RotateTowards ( transform.rotation,
Quaternion.LookRotation( obj.transform.position - transform.position ),
 60.0f * Time.deltaTime );

では、現在の向きからターゲットの向きへ1秒間に60度の速度で向きを変えていくということになります。

 

 

以上が、Unityでゲームオブジェクトの向きを変えさせる時に使えそうな便利な方法の例になります。