Unity中Invoke延时方法相关使用

Unity中Invoke延时方法相关使用

Invoke和InvokeRepeating都是MonoBehaviour类中的方法.由于并不一定是始终执行,并且每帧反复执行,所以这两个方法基本写在Start()方法里,利用调用函数名来起到延时执行,或者(不)延时指定频率执行方法的效果.
Invoke

  • Invoke(methodName: string, time: float): void;
  • methodName:方法名
  • time:多少秒后执行

InvokeRepeating

  • InvokeRepeating(methodName: string, time: float, repeatRate: float):void;
  • methodName:方法名
  • time:多少秒后执行
  • repeatRate:重复执行间隔

还有两个重要的方法:

IsInvoking:用来判断某方法是否被延时,即将执行
CancelInvoke:取消该脚本上的所有延时方法

代码:

using UnityEngine;
using System;

public class SystemTime : MonoBehaviour
{
    DateTime curr_time;//当前时间
    int count;//执行重复方法的次数
    
 	void Start () 
 	{
        Invoke("InvokeTest", 1.0f);//延时1秒才执行(只执行一次)
        InvokeRepeating("InvokeRepeatingTest", 2.0f, 1.0f);//延时2秒开始执行,之后每隔1秒执行一次
    }

    private void InvokeTest()
    {
        curr_time = System.DateTime.Now;
        Debug.Log("执行延时方法:" + curr_time );
    }

    private void InvokeRepeatingTest()
    {
        curr_time= System.DateTime.Now;
        Debug.Log("执行重复方法:" + curr_time );
        count += 1;
        if(count==5)
        CancelInvoke();//取消该脚本上的所有延时方法
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值