我有一個指南針對象,它隨着相機旋轉和移動。因此,羅盤對象的旋轉和位置與玩家控制的照相機一起被調整。現在,在我的指南針上掛了一根針 - 我想讓針尖朝北。Unity3d中的C#指南針旋轉腳本
這很容易做到,但針指向北方的對象。但是針現在不遵循放置在其上的板(指南針對象)。因此,我願意針頭相應指出。換句話說,沿Y軸單獨旋轉。
我不需要代碼 - 我只需要一個廣泛的想法如何做到這一點。 我真的很感謝所有幫助:)
我有一個指南針對象,它隨着相機旋轉和移動。因此,羅盤對象的旋轉和位置與玩家控制的照相機一起被調整。現在,在我的指南針上掛了一根針 - 我想讓針尖朝北。Unity3d中的C#指南針旋轉腳本
這很容易做到,但針指向北方的對象。但是針現在不遵循放置在其上的板(指南針對象)。因此,我願意針頭相應指出。換句話說,沿Y軸單獨旋轉。
我不需要代碼 - 我只需要一個廣泛的想法如何做到這一點。 我真的很感謝所有幫助:)
我終於想通了:d 這比預期的要容易得多......這裏是代碼,如果任何人都應該永遠需要它:
using UnityEngine;
using System.Collections;
public class Compass : MonoBehaviour {
void Update() {
transform.localRotation = Quaternion.Euler(0, 360-transform.root.rotation.eulerAngles.y, 0);
}
}
我會嘗試投影從指南針位置指向的矢量,將其瞄準在針應該放置的平面上。 Vector.ProjectOnPlane可能會有所幫助。 像這樣的東西應該工作(沒有測試):
Vector3 dir = compassPos - targetPos;
Vector3 needleDir = Vector3.ProjectOnPlane(dir, compassNormal);
介意分享您的層次結構此解決方案(例如攝像頭 - >指南針 - >針)?你的指南針遊戲對象指向北方,指針正在跟隨?我試圖用我的代碼實現您的解決方案,但無法弄清楚您使用的設置。謝謝! – Valerie