U3D定时执行
InvokeRepeating 和 Invoke
public Material[] colors;
float speed = 5;
// Start is called before the first frame update
void Start()
{
//Invoke("AutoChangeColor", 5);////启动5秒后开始被调用一次
InvokeRepeating("Bounce", 2, 2); //启动2秒后开始被重复调用,并且每隔2秒执行一次。
}
// Update is called once per frame
void Update()
{
gameObject.transform.Translate(0, Time.deltaTime * speed, 0, Space.Self);
}
/// <summary>
/// 弹跳
/// </summary>
private void Bounce()
{
Debug.Log("**Time:" + Time.time);
speed = 0 - speed;
}
IsInvoking 和 CancelInvoke
鼠标按下,如果已经加入调用队列,则取消调用,如果没有加入调用队列,则加入调用队列循环调用。
if (Input.GetMouseButtonDown(0))
{
Debug.Log("鼠标按下");
if (IsInvoking("Bounce")) //是否已被加入 Invoke调用
{
CancelInvoke("Bounce");
//CancelInvoke();//取消当前脚本的所有 Invoke调用
}
else
{
Debug.Log("注册");
InvokeRepeating("Bounce", 1, 1); //启动2秒后开始被重复调用,并且每隔2秒执行一次。
}
}