Unity常用方法/函数(1):定时或延迟调用方法/函数

前言

做项目时碰到当一个方法(函数)调用后延迟一段时间再调用另一个方法的情况,我发现unity本身有方法可以解决这个问题,因此记录如下:

MonoBehaviour.Invoke

public void Invoke (string methodName, float time);

上述描述出自官网API说明。

在使用时可以直接使用Invoke方法,第一个参数是需要调用的方法名称,第二个参数是延迟调用的时间,单位为秒s

using UnityEngine;
using System.Collections.Generic;

public class ExampleScript : MonoBehaviour
{
    void Start()
    {
        Invoke("LaunchProjectile", 2.0f);
    }

    void LaunchProjectile()
    {
        Debug.Log("111");
    }
}

 上面脚本的含义是启动项目后,延迟两秒调用LaunchProjectile()方法,以此类推,Invoke可以嵌套在其他方法中,比如在一个方法调用后再延迟调用另一个,可以实现类似待机屏保的效果(无操作一段时间后播放)

using UnityEngine;
using System.Collections.Generic;

public class ExampleScript : MonoBehaviour
{
    void Start()
    {
        Invoke("LaunchProjectile0", 2.0f);
    }

    void LaunchProjectile0()
    {
        Debug.Log("111");
        Invoke("LaunchProjectile1", 2.0f);
    }
    void LaunchProjectile0()
    {
        Debug.Log("222");
    }
}

其他类似的方法还有:

MonoBehaviour.InvokeRepeating

public void InvokeRepeating (string methodName, float time, float repeatRate);

在 time 秒后调用 methodName 方法,然后每 repeatRate 秒调用一次。

注意:如果将时间刻度设置为 0,该函数不起作用。

 

MonoBehaviour.CancelInvoke

public void CancelInvoke ();

取消该 MonoBehaviour 上的所有 Invoke 调用。

MonoBehaviour.IsInvoking

public bool IsInvoking (string methodName);

是否有任何待处理的 methodName 调用?返回一个布尔值

参考资料:

[1] UnityEngine.MonoBehaviour - Unity 脚本 API

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值