攝像機跟隨以及注視旋轉和角度變化
阿新 • • 發佈:2019-01-11
前言
- 以前對於lookrotation的含義並沒有弄明白,今天查了一些資料,算是終於搞懂了
- 借鑑了這個部落格
- https://blog.csdn.net/liumazi/article/details/50277211
原理
- 它是根據物體區域性座標系的描述來建立一個四元數
- public static Quaternion LookRotation(Vector3 forward, Vector3 upwards = Vector3.up);
- forward:向前向量, 即z軸的朝向。但是僅僅有z軸的朝向是不夠的, 因為物件還可能繞著z軸旋轉, 所以需要upwards來約束。
- upwards:向上向量, 注意, 此向量不需要是精確的y軸的朝向(即不需要與forward垂直), 但是, 此向量應該處於z軸、y軸平面上。
- 這樣我們可以讓一個物體持續注視某個物體
void Update() { Vector3 relativePos = target.position - transform.position; Quaternion rotation = Quaternion.LookRotation(relativePos); transform.rotation = rotation; }
角度插值
Quaternion.Slerp
按照圓弧進行插值,這個更適用於角度變換transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed*Time.deltaTime)