1. 程式人生 > >Quaternion.LookRotation和lookat

Quaternion.LookRotation和lookat

Quaternion.LookRotation(v3 v)的引數是一個向量,是讓物體z軸和這個向量重合

Quaternion.LookRotation(v3 v1,v3 v2)前一個引數對應物體z軸,後一個對應Y軸

lookat的引數是一個點,是讓物體Z軸指向這個點

利用這一點可以實現一個簡單的移動

void Move()
    {
        float horizontal = Input.GetAxis("Horizontal");//獲取水平偏移量(x軸)
        float vertical = Input.GetAxis("Vertical");    //獲取垂直偏移量(z軸)
        //將水平偏移量與垂直偏移量組合為一個方向向量
        Vector3 direction = new Vector3(horizontal, 0, vertical);
        //判斷是否有水平偏移量與垂直偏移量產生
        if (direction != Vector3.zero)
        {
            //將遊戲物件的z軸轉向對應的方向向量
            //            transform.rotation = Quaternion.LookRotation(direction);
            //對上一行程式碼進行插值運算則可以將轉向表現得較平滑
            B.rotation = Quaternion.Lerp(B.rotation, Quaternion.LookRotation(direction), 0.3f);
            //將遊戲物件進行移動變換方法則可以實現簡單的物體移動
            B.Translate(Vector3.forward * 5 * Time.deltaTime);
        }
    }