在unity中使用lookat時固定軸的方法

在unity開發的過程中 很多時候需要一個物體跟隨另一個物體來旋轉
這個時候的lookat就是一個很好的方法
但是lookat的簡單使用也會有缺點 就是當兩個物體走的比較近的時候 另外一個物體會向下旋轉
下面我給出一個圖 讓大家更好理解一下
在這裏插入圖片描述

我本來的意思是讓這個3D字體永遠面朝發光物體
但是隨着距離的縮小 3Dtext越來越傾斜

於是我們需要固定這個物體的Y軸來實現這個效果
我們可能之前瞭解過 給他加一個剛體 然後從unity中鎖定一個軸

在這裏插入圖片描述
但是這個方法對於lookat方法是沒用的

我們需要在代碼中來控制
我們思路是 創建一個傀儡 然後讓他隨着傀儡而轉動 但是我們可以控制傀儡的Y軸
這樣我們想要的效果就很容易的實現了

所需代碼如下

public GameObject Player;//玩家     
private Vector3 TargetRotation;//傀儡
    void Update()
    {
        TargetRotation.x = Player.transform.position.x;
        TargetRotation.z = Player.transform.position.z;
        TargetRotation.y = 0;
        transform.LookAt(TargetRotation);
    }

這樣就很好解決了這個問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章