角色从屏幕的一边移动到另一边。当while循环执行完成时,移动就会结束,但是"Run“动画会继续进行。
void Update()
{
if(selected == true)
Move()
}
void Move()
{
pos = left.transform.position;
StartCoroutine(MoveOverTime());
IEnumerator MoveOverTime()
{
while (transform.position != pos)
{
transform.position = Vector3.MoveTowards(transform.position, pos, 0.04f * Time.deltaTime);
animator.Play("Run");
yield return null;
}
selected = false;
yield return null;
}
}发布于 2021-10-08 10:04:26
您应该使用适当的浮动比较,以防止预期的几乎不完全相同的值条件。
尝试使用(transform.position - pos).magnitude > 0.1f代替。你可以随意调整精度。
https://stackoverflow.com/questions/69493942
复制相似问题