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;
}
}
}