【发布时间】:2018-04-19 10:02:02
【问题描述】:
统一:2017.3.0f3
用例:点击移动对象。
我经常看到像下面这样的协程来移动对象。
private IEnumerator MoveTo(Vector2 position){
while (/*stop condition*/)
{
float newX = speed * Time.deltaTime;
transform.position = /*with newX*/
yield return null; // <-----------
}
}
我认为应该是:
private IEnumerator MoveTo(Vector2 position){
while (/*stop condition*/)
{
yield return null; // <-----------
float newX = speed * Time.deltaTime;
transform.position = /*with newX*/
}
}
我认为在大多数用例中,我们必须等待下一帧才能执行移动操作,否则我们会考虑在我们设法移动对象之前已经过去的 deltaTime。
你怎么看?我完全错了吗?
PS:我知道我们可以使用 Update() 和 co。对于这种用例。
【问题讨论】: