2014年5月19日月曜日

[Unity]回転するオブジェクトを見た目だけ回転しないようにする方法

なんかタイトル読むと何なのかわかりづらいですが……

Unity4.3以降の2Dスプライトで使用した内容です。

例を挙げると、Circle Collider2DとRigidBody2Dをもつオブジェクトで壁などに衝突したときに反射しますが、デフォルトのFixed Angleにチェックが入っていないと回転するため入射角と同じ反射角で跳ね返ります。Fixed Angleにチェックを入れていると、オブジェクトが回転しないからなのか反射角が0°で跳ね返ります。
しかしこのときオブジェクト自身が回転しています。

上下左右が区別のつくスプライトを使用している場合、見た目がクルクル回転しているように見えます。この回転をしてるように見えなくする方法です。

1.Rigidbody2Dが入っているオブジェクトにスクリプトを追加します。
2.Update()に、gameObject.transform.rotation = Quaternion.Euler(0, 0, 0);を追加します。

上記手順で、見た目回転しなくなります。