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();//取消该脚本上的所有延时方法
    }
}

你可能感兴趣的:(Unity.Invoke)