我一直在寻找和绞尽脑汁,试着让这段代码正常工作,但无济于事。希望你们能提供帮助。 我有一个简单的设置,立方体每帧移动位置。我需要立方体到达不同位置时到达x位置。
示例:立方体从位置0开始,在x轴上向前移动直到它到达位置15,然后恢复为0并停止。
Vector3 startingPosition;
void Start ()
{
startingPosition = gameObject.transform.position;
}
void Update ()
{
if (gameObject.transform.position.x == 15) {
gameObject.transform.position = startingPosition;
} else {
float translation = Time.deltaTime * 2;
transform.Translate (0, 0, translation);
transform.Translate (Vector3.forward * translation);
}
}
}
目前立方体连续移动(没有停止点),它的x位置对定位没有影响。
答案 0 :(得分:1)
将您的==
更改为>=
,看看是否有所作为。我的猜测是position.x
永远不会完全等于15,这可能是由于浮点精度错误造成的,也可能是因为你的翻译逻辑从一帧跳到下一帧超过了15。
答案 1 :(得分:0)
我遇到了动画无法正常工作的问题,并且觉得我已经在互联网上搜索了几天试图让它工作,所以这非常有用。在我的情况下,动画' GameObject位于y = 1的位置,应该已经移动到y = 9,但除非我点击了动画师中的过渡,否则不会更新。我将代码从x == 15
更改为y <= 9
和Vector3.forward
更改为Vector3.up
,现在效果很好。希望这可能会帮助其他人解决同样的问题。使用Unity v 2017.1.2