2015-09-27 466 views
0

我有一個指南針對象,它隨着相機旋轉和移動。因此,羅盤對象的旋轉和位置與玩家控制的照相機一起被調整。現在,在我的指南針上掛了一根針 - 我想讓針尖朝北。Unity3d中的C#指南針旋轉腳本

這很容易做到,但針指向北方的對象。但是針現在不遵循放置在其上的板(指南針對象)。因此,我願意針頭相應指出。換句話說,沿Y軸單獨旋轉。

我不需要代碼 - 我只需要一個廣泛的想法如何做到這一點。 我真的很感謝所有幫助:)

回答

1

我終於想通了:d 這比預期的要容易得多......這裏是代碼,如果任何人都應該永遠需要它:

using UnityEngine; 
using System.Collections; 

public class Compass : MonoBehaviour { 
    void Update() { 
    transform.localRotation = Quaternion.Euler(0, 360-transform.root.rotation.eulerAngles.y, 0); 
    } 
} 
+0

介意分享您的層次結構此解決方案(例如攝像頭 - >指南針 - >針)?你的指南針遊戲對象指向北方,指針正在跟隨?我試圖用我的代碼實現您的解決方案,但無法弄清楚您使用的設置。謝謝! – Valerie

0

我會嘗試投影從指南針位置指向的矢量,將其瞄準在針應該放置的平面上。 Vector.ProjectOnPlane可能會有所幫助。 像這樣的東西應該工作(沒有測試):

Vector3 dir = compassPos - targetPos; 
Vector3 needleDir = Vector3.ProjectOnPlane(dir, compassNormal);