- 結論:角度の概念が直感的でないため、ベクトルに回転を与える場合はQuaternionかTransformの関数を使ったほうが良い
- Quaternionは3次元空間上のある点(x,y,z)を、任意軸、任意角で回転させるもの。(参考)
- Unityのtransform.rotationの(x,y,z) は任意軸のパラメータで合っている模様
- Quaternion同士の掛け算で、角度を加算できる
- transform.rotation *= Quaternion.AngleAxis(angle, Vector3.up);とした場合、
transform.upを軸にangle度回転する(掛けられる側=回転する側の空間に置き換えて、回転が行われる) 打ち消し線をした内容に思われるが、ローカル空間に置き換えたとき真上を向くベクトルを作っても水平な回転にならなかった。仕様不明 - 任意軸に任意角を回す場合、transform.Rotateを使うと良い。特にワールド空間で回転をさせたい場合に有用。
【追記2017.05.21】
回転行列とクォータニオンの違い(参考)
0 件のコメント:
コメントを投稿