記述日 2020/6/28
unity 2019.3.2f1
※自分の学習メモなので誤りあるかもしれません
クォータニオン超入門3 ターゲットの方を向く
1回目、2回目とクォータニオンの勉強をして、なんとなくクォータニオンがわかったので、そろそろ実践。
ターゲットの方を向く。です。
1:瞬時にターゲットの方を向く
Missile01Script.cs
/// <summary> /// 瞬時にターゲットの方を向く /// </summary> void ChangeDirectionNoTime() { transform.LookAt(mTarget.transform); }
なんと一行でターゲットの方を向きます。
中でどういう計算してるかわからないけどunityすげー(笑)
2:クォータニオンで補間してターゲットの方を向く
Missile01Script.cs
/// <summary> /// 補間しながらターゲットの方を向く /// </summary> void ChangeDirectionInterpolation() { Vector3 direction = mTarget.transform.position - transform.position; direction.Normalize(); transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.LookRotation(direction), mTurnSpeed * Time.deltaTime); }
こちらも非常に簡単でした。
ターゲットの座標から自分(ミサイル)座標の差(ベクトル)を出してそのベクトルを正規化、
Quaternion.LookRotationでそのベクトルの方に向けるだけです。
補間はQuaternion.RotateTowardsを使ってゆっくりと向かせています。
ソースコードとプロジェクト
該当シーンは「Quaternion03」になります
ソースコードはこちら↓
検索用
C# クォータニオン
コメント