簡體   English   中英

有沒有辦法僅在 Y 軸上使用 Quaternion.LookRotation() 旋轉游戲對象?

[英]Is there a way to rotate gameobject using Quaternion.LookRotation() on Y axis only?

所以,我正在開發 Unity 項目。 我有一個迫擊炮,它傾向於玩家游戲對象。 我想旋轉它,讓它跟隨玩家的運動。 我在我的更新方法中想出了這個簡單的代碼:

        Vector3 directionToFace = _player.position - transform.position;
        directionToFace.y = 0;
        Debug.DrawRay(transform.position, directionToFace, Color.green); // for visualization
        transform.rotation = Quaternion.LookRotation(directionToFace);

但是將 y 設置為 0 將 x 軸的旋轉上限設置為 0,但我希望我的迫擊炮向前傾斜一點。 我嘗試將 y 設置為許多不同的值,但是兩個物體之間的距離決定了迫擊炮的傾斜程度。 是的,我知道我可以將其設為空游戲對象的子對象並將腳本應用於父對象,但如果有任何其他方法可以在我的代碼中解決此問題...您的幫助將不勝感激。

我唯一的想法是計算兩個游戲對象之間的距離並相應地更改 directionToFace.y 的值。 但是我必須在檢查器中獲得分配給迫擊炮的局部旋轉,然后使用勾股定理計算值......但我不想那么折磨自己:D

希望我能理解你的問題! 我發現可以通過在代碼后面添加這一行來使你的游戲對象向前傾斜

transform.rotation = Quaternion.Euler(xOffset,transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z);

其中 xOffset 是您希望游戲 object 傾斜的量,也可以以類似的方式為 z 添加顯式值。

旋轉對象

如果這不是你的意思,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM