【Unity -invoke】

在Unity中,Invoke 系列方法允许你安排在将来的某个时间点执行特定的函数调用。这些方法主要用于时间延迟执行,它们包括 Invoke、InvokeRepeating 和 CancelInvoke。

Invoke
Invoke 方法用于在指定的时间延迟后调用一次方法。它的基本用法如下:

Invoke("MethodName", delayTime);

MethodName:要调用的方法的名称。
delayTime:延迟的时间,单位为秒。

InvokeRepeating
InvokeRepeating 方法用于在指定的时间延迟后开始重复调用方法,每次调用之间会有固定的时间间隔。它的基本用法如下:

InvokeRepeating("MethodName", delayTime, repeatRate);

MethodName:要调用的方法的名称。
delayTime:首次调用方法前的延迟时间,单位为秒。
repeatRate:重复调用方法的时间间隔,单位为秒。

CancelInvoke
CancelInvoke 方法用于取消之前使用 Invoke 或 InvokeRepeating 方法安排的函数调用。它的基本用法如下:

CancelInvoke("MethodName");

MethodName:要取消的调用的方法的名称。
如果未指定方法名称,则取消该对象上所有使用 Invoke 或 InvokeRepeating 方法安排的调用。

示例
以下是如何使用 Invoke 系列方法的一个简单示例:

using UnityEngine;

public class InvokeExample : MonoBehaviour
{
    void Start()
    {
        // 5秒后调用PrintMessage方法
        Invoke("PrintMessage", 5.0f);

        // 2秒后开始重复调用RepeatMessage方法,每隔1秒调用一次
        InvokeRepeating("RepeatMessage", 2.0f, 1.0f);
    }

    void PrintMessage()
    {
        Debug.Log("这是Invoke方法5秒后调用的。");
    }

    void RepeatMessage()
    {
        Debug.Log("这是InvokeRepeating方法每隔1秒调用的。");
    }

    void CancelInvokes()
    {
        // 取消PrintMessage方法的Invoke调用
        CancelInvoke("PrintMessage");

        // 取消所有Invoke或InvokeRepeating调用
        CancelInvoke();
    }
}

在上面的示例中,PrintMessage 方法将在5秒后被调用一次,而 RepeatMessage 方法将在2秒后开始,每隔1秒被调用一次。CancelInvokes 方法可以用于取消这些调用。

使用 Invoke 系列方法时,需要注意它们只能在游戏运行时使用,并且它们依赖于游戏的时间缩放(Time Scale)设置。如果时间缩放设置为0,则游戏时间将停止,但 Invoke 系列方法仍然会按照实际时间执行。

想了解更多游戏开发知识,可以扫描下方二维码,免费领取游戏开发4天训练营课程
在这里插入图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值