【发布时间】:2013-10-22 04:25:33
【问题描述】:
我有一个 ImageTarget,当检测到目标时,我正在显示一个 3DText。我希望此文本从 ImageTarget 开始并移向 Camera。
假设我的相机距离为 50 个单位,而目标距离为 0 个单位。当检测到图像时,我希望文本从 0 开始并以 5 个单位的间隔向相机移动,当它到达相机(45 个单位或 50 个单位)时,文本应该停止移动。
有人可以帮我解决这个问题吗?我对 Unity 很陌生..
提前谢谢...
这就是我现在正在做的事情..
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;
}
}
当我使用此代码时,它的文本只是显示但似乎没有移动。
【问题讨论】:
-
您可能希望将
distance -= 5更改为distance -= translateInterval * Time.deltaTime并将while更改为if。 while 循环将一直执行到完成,所以如果/当您的翻译工作时,您将看到的只是一个瞬间跳转。