2015年7月9日木曜日

[Unity] transform.eulerAnglesについて


こんにちは。


前回、[Unity] transform.Rotateとtransform.rotationの違いについて

という記事を書いたのですが、その中で私がよく使うeulerAnglesという

処理を軽く紹介しました。



今回は、そのeulerAnglesについて備忘録を兼ねて記載します。





eulerAnglesはtransform.Rotateと同じように回転処理を行うコードなのですが、

Rotateはオブジェクトの座標から回転し、eulerAnglesは指定した座標に回転する

といった細かい違いがあります。




つまり、transform.Rotate = new Vector3(0, 10, 0);と

transform.eulerAngles = new Vector3(0, 10, 0);では動きが変わるという事です。




if(Input.GetMouseButton(0))などで実際に試してみると

Rotateでは回転し続けるのに対して、eulerAnglesでは1度だけy軸方向に10°

回転したかと思います。




このような違いがあるので使い分けが重要になりますね。





インクリメントを使ってeulerAnglesで回転し続ける事も一応できたのですが、

動きがおかしいのであまりおすすめはされないと思います。

やはり回転はRotateを使ったほうがよさそうですね。




無理やり処理をすると思わぬエラーにつながるので慎重に行いましょう。





余談ですがeulerは「オイラー」と読みます。

レオンハルト・オイラーさんという人が考案したからオイラーというらしいですよ。


"オイラー角"などで検索するとより詳しい情報が出ると思います。






プレイヤーの操作などでも回転はよく使われるので

細かな動作の違いも理解しておいてもいいのではないでしょうか。




ではまた。

 開発者のアプリを見る 

SteepStep ←iOSの方はこちら
SteepStep←Androidの方はこちら

 関連するブログを探す 

>SteepStep攻略動画作りました。