1. 程式人生 > >攝像機跟隨以及注視旋轉和角度變化

攝像機跟隨以及注視旋轉和角度變化

前言

原理

  • 它是根據物體區域性座標系的描述來建立一個四元數
  • 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)