2013-10-21 57 views
0

我有一個ImageTarget,當檢測到目標時,我顯示一個3DText。我希望這個文本從ImageTarget開始並移動到相機。3DText - 向攝像頭移動 - Unity

假設我的攝像機距離爲50個單位,目標爲0個單位。當檢測到圖像時,我希望文本從0開始,間隔爲5個單位,向相機移動,當它到達相機(45個單位或50個單位)時,文字應該停止移動。

有人可以幫助我嗎?我是很新的統一..

在此先感謝...

這裏是我現在做..

public float distance; 
public int translateInterval = 5; 


void Start() { 

    GameObject mainCamera = GameObject.FindGameObjectWithTag("MainCamera"); 
    distance = Vector3.Distance(transform.position, mainCamera.transform.position); 
} 


void Update() { 

    while(distance > 0) 
    { 
     transform.Translate(-Vector3.forward * translateInterval * Time.deltaTime); 
     distance -= 5; 
    } 

} 

當我使用此代碼,它將文本只是獲取顯示,但似乎並沒有移動。

+0

您可能希望將'distance - = 5'更改爲'distance - = translateInterval * Time.deltaTime'並將'while'更改爲' if'。 while循環會一直執行直到完成,所以如果/當你的翻譯工作時,你會看到的是一個瞬間跳躍。 – Jerdak

回答

0

要在3D空間中的兩點之間製作一個物體Vector3.Lerp是您的朋友!要計算文本應該移動的位置,您可以看看Vector3.MoveTowards

我推薦通過Vector3類進行很好的閱讀,因爲它包含大量卓越的實用方法來幫助我們。那麼,至少要幫助我,因爲我傾向於在矢量數學中失敗:)