首先是基本的:
using UnityEngine;
using System.Collections;
public sealed class WaiterForSecond {
private float timeSecond;
public IEnumerator Wait(float waitSecond)
{
timeSecond = Time.time + waitSecond;
while (Time.time<timeSecond)
{
yield return null;
}
}
}
之后的调用:
using UnityEngine;
using System.Collections;
public class waittest : MonoBehaviour {
private WaiterForSecond waiterForSecond = new WaiterForSecond();
int i = 0;
private IEnumerator test()
{
while (i < 10)
{
yield return waiterForSecond.Wait(1.0f);
i++;
print("-----------:" + i.ToString());
}
}
// Use this for initialization
void Start () {
StartCoroutine(test());
}
}
这样每个1秒就会调用一次协程里的print方法。