我想使用我的协程来平滑地插值多个GameObjects的位置和旋转,并将脚本附加到它们上。当我启动协程时,平滑部分工作得很好,但我所有的对象都被移动到相同的位置,这不是我想要的。我想知道为什么会这样,以及是否有聪明的方法来处理它。
这是我的协程的样子:
IEnumerator interpolate_Plate(Transform targ)
{
float passedTime = 0;
while (!transform.Equals(targ))
{
passedTime += Time.deltaTime;
transform.position = Vector3.Lerp(transform.position, targ.position, passedTime);
transform.rotation = Quaternion.Lerp(transform.rotation, targ.rotation,passedTime);
yield return null;
}
yield break;
}我在考虑创建一个带有列表的主协程,然后调用平滑部分。问题是,对于堆栈上的所有协程调用,targ的引用总是被重置吗?
根据您的请求,调用协程的函数:
public void move_Plate(Transform newPosition)
{
StartCoroutine(interpolate_Plate(newPosition));
}https://stackoverflow.com/questions/41444007
复制相似问题