2013-10-21 58 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类进行很好的阅读,因为它包含大量卓越的实用方法来帮助我们。那么,至少要帮助我,因为我倾向于在矢量数学中失败:)