サンプルのC#コードを見ていて意味不明なのがクォータニオンですね
4次元のベクトルで、任意軸回転を行うやりかた。
3Dを始めた人はみなハマるんではないだろうか。
要するに、普通の高校数学の三次元のような角度はオイラー角と呼ばれていて、
たとえば、FPSなどで、敵が自分の方向を向く場合
>||
transform.LookAt(target);
transform.Translate( Vector3.forward * speed * Time.deltaTime);
||<
オイラー角で考えると、こう書くけど、
これだと、ジンバルロックというのが起きてうまくないらしい。
LookAtはtargetの方に向かせるメソッドで、
まず向かせて、speedで前進する。
クォータニオンを使うと、こう書く
>||
// ターゲット方向のベクトルを求める
Vector3 vec = target.position - transform.position;
// ターゲットの方向を向く
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(new Vector3(vec.x, 0, vec.z)), rotMax);
transform.Translate(Vector3.forward * speed); // 正面方向に移動
↑移動ベクトルのY成分を0にすることで、縦に回転しないで追尾する?
||<
実際に動かして確認してみたほうがいいだろうけど(^^;)
はてな表記でコード指定にしてるのにはて?