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秒执行一次。
    }
}
posted @ 2024-07-20 16:29  暖暖De幸福  阅读(1)  评论(0编辑  收藏  举报