IEnumerator GoAndWait()
{
while (true)
{
yield return new WaitForSeconds(3f);
startTime = Time.time;
endTime = startTime;
//Debug.Log("" + endTime + " " + startTime);
while (endTime - startTime < 2f)
{
transform.Translate(transform.forward * Time.deltaTime);
yield return new WaitForEndOfFrame();
endTime = Time.realtimeSinceStartup;
}
}
}
start中调用一下协程。
非协程实现需要在update中调用
void Update () {
//Debug.Log("" + endTime + " " + startTime);
curT += Time.deltaTime;
if (curT < 1f)
{
transform.Translate(0, 0, 1 * Time.deltaTime);
}
else
{
delT += Time.deltaTime;
if (delT > 3f)
{
curT = 0f;
delT = 0f;
}
}
}
本文探讨了在Unity中使用协程与非协程两种方式来控制游戏对象的移动。通过具体代码示例展示了如何利用这两种方法实现平滑的物体前进,并对比了它们在实现上的差异。
1837

被折叠的 条评论
为什么被折叠?



