Unity延时触发的几种常规方法

news/2024/5/20 21:33:08

目录

  • 1、使用协程Coroutine
  • 2、使用Invoke、InvokeRepeating函数
  • 3、使用Time.time
  • 4、使用Time.deltaTime
  • 5、使用DOTween。
  • 6、使用Vision Timer。

1、使用协程Coroutine

public class Test : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){        StartCoroutine(DelayExecute());}IEnumerator DelayExecute(){yield return new WaitForSeconds(2f);Debug.Log("延迟2秒后执行");}
}

2、使用Invoke、InvokeRepeating函数

(1)使用Invoke:

using UnityEngine;public class Test : MonoBehaviour
{private void Start(){Invoke("DelayedExeCute", 2f); //2秒后执行}private void DelayedExeCute(){Debug.Log("延迟后,执行!");}
}

(2)使用InvokeRepeating:

using UnityEngine;public class Test: MonoBehaviour
{private void Start(){InvokeRepeating("DelayedExeCute", 2f, 2f);//2s后开始执行,并且之后每个2s重复执行一次。}private void DelayedExeCute(){Debug.Log("延迟后,执行!");}
}

注意:
可通过以下一些集成好的方法检测或停止Invoke的状态。

  1. IsInvoking(): 判断是否有通过Invoke方式调用的函数,只要有Invoke在运行,就返回true.

  2. IsInvoking(函数名): 指定函数名称,当这个函数正在Invoke的时候返回true

  3. CancelInvoke(函数名): 取消所有Invoke或者对应Invoke

3、使用Time.time

using UnityEngine;public class Test : MonoBehaviour
{private float startTime;private float delayTime = 2f; // 延时时间为2秒private flaot elapsedTime=0;private void Start(){startTime = Time.time;// 记录开始时间}private void Update(){elapsedTime = Time.time - startTime;// 时间差if (elapsedTime >= delayTime)// 判断是否达到延时时间{ExecuteAction();//已经达到,执行延时后的操作}}private void ExecuteAction(){Debug.Log("开始执行操作");}
}

4、使用Time.deltaTime

using UnityEngine;public class Test: MonoBehaviour
{private float delayTime = 3f; // 延时时间为3秒private float elapsedTime=0;private void Update(){elapsedTime += Time.deltaTime;  // 累加时间if (elapsedTime >= delayTime)// 判断是否达到延时时间{ExecuteAction();//已经达到,执行延时后的操作}}private void ExecuteAction(){Debug.Log("开始执行操作");elapsedTime = 0f; //清空重置}
}

5、使用DOTween。

using UnityEngine;
using DG.Tweening;public class Test: MonoBehaviour
{private void Start(){float delayTime = 2f;   // 延时2秒后执行回调函数DOTween.To(() => 0, x => { }, 0, delayTime).OnComplete(() =>{Debug.Log("延时结束!");});}}

6、使用Vision Timer。

public class Test: MonoBehaviour
{private void Start(){vp_Timer.In(2f, ExecuteMethod);//2秒后调用vp_Timer.In(2f, ExecuteMethod, 3);//2秒后调用,间隔1秒调用3次vp_Timer.In(2f, ExecuteMethod,4, 1); //2秒后调用,间隔1秒调用4次vp_Timer.In(2f, ExecuteMethod, 0, 1);//2秒后调用,间隔1秒调用无限次vp_Timer.In(1.0f, MethodWithArgument, "CanShuValue");//带参数调用vp_Timer.In(1.0f, MethodWithArguments,new object[] { "A", 1, 2 }); //带多个参数调用//vp_Timer.CancelAll(); //取消所有定时器//vp_Timer.CancelAll("SomeMethod"); //取消定时器}void ExecuteMethod(){Debug.Log("延迟后,开始执行");}void MethodWithArgument(object o){string s = (string)o;Debug.Log("传过来的参数:"+s);}void MethodWithArguments(object o){object[] arg = (object[])o;Debug.Log("1: " + (string)arg[0]+ ", 2:" + (int)arg[1]+ ", 3:" + (int)arg[2]);}}

这里是井队,天高任鸟飞,海阔凭鱼跃,点个关注不迷路,我们下期再见。


http://www.mrgr.cn/p/21464667

相关文章

一键实现在VS Code中绘制流程图

VS Code是一款常用的IDE,受到许多用户的欢迎和喜爱。而其较为出众的一点,就是较好的可拓展性,即丰富的插件应用,这些应用可以极大地提高生产效率,并优化日常使用。 流程图是一种直观的图示方法,可以用简明…

jsp 实验12 servlet

一、实验目的 掌握怎样在JSP中使用javabean 二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握servlet的用法。【参考课本 上机实验1 】 三、源代码以及执行结果截图&#xff1a; 源代碼&#xff1a; inputVertex.jsp&#xff1a; <% page lang…

[转帖]TLAB(Thread Local Allocation Buffer)

https://www.cnblogs.com/Chary/p/18034613 TLAB是虚拟机在堆内存的eden划分出来的一块专用空间,是线程专属的。在虚拟机的TLAB功能启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间,只给当前线程使用,这样每个线程都单独拥有一个空间,如果需要分配内存,…

【前端】CSS基础(1)

文章目录 前言一、CSS基础1、 CSS是什么2、 CSS基本语法规范3、 代码风格3.1 样式格式3.2 样式大小写3.3 空格规范 4、 CSS引入方式4.1 内部样式表4.2 行内样式表4.3 外部样式 前言 这篇博客仅仅是对CSS的基本结构进行了一些说明&#xff0c;关于CSS的更多讲解以及HTML、Javasc…

YOLOv5改进 | 独家创新篇 | 利用MobileNetV4的UIB模块二次创新C3(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用MobileNetV4的UIB模块二次创新C3&#xff0c;其中UIB模块来自2024.5月发布的MobileNetV4网络&#xff0c;其是一种高度优化的神经网络架构&#xff0c;专为移动设备设计。它最新的改动总结主要有两点&#xff0c;采用了通用反向瓶…

OpenHarmony 3.2 Release版本实战开发——Codec HDI适配过程

简介 OpenHarmony Codec HDI&#xff08;Hardware Device Interface&#xff09;驱动框架基于 OpenMax 实现了视屏硬件编解码驱动&#xff0c;提供 Codec 基础能力接口供上层媒体服务调用&#xff0c;包括获取组件编解码能力、创建组件、参数设置、数据的轮转和控制、以及销毁…

GPU通用计算介绍

谈到 GPU &#xff08;Graphics Processing Unit&#xff0c;图形显示卡&#xff09;大多数人想到的是游戏、图形渲染等这些词汇&#xff0c;图形处理确实是 GPU 的一大应用场景。然而人们也早已关注到它在通用计算上的巨大潜力&#xff0c;并提出了 GPGPU (General-purpose co…

Blender动画与云渲染:创造高质量作品的未来路径

Blender作为开源的3D图形软件&#xff0c;在多个领域广受欢迎。但随着项目复杂度提升&#xff0c;传统渲染方式受限。云渲染技术的兴起突破了这些限制&#xff0c;为创作者提供了更自由、高效的创作环境。 一、Blender动画项目的挑战 传统上&#xff0c;Blender动画渲染需要依…

Web安全研究(八)

Good Bot, Bad Bot: Characterizing Automated Browsing Activity S&P 2021 石溪大学 攻击者依赖于恶意的bot发现易受攻击的网站&#xff0c;并入侵服务器泄漏用户数据。因此了解恶意的bot相当重要。 作者设计了Aristaeus&#xff0c;用于部署大量蜜罐网站的系统&#xff…

Android的NDK开发中Cmake报缺少对应的x86的so文件

需要实现一个串口操作的命令。 供应商提供了2个so文件。 分别是 armeabi-v7a 和 arm64-v8a 添加到对应的cpp下。 在CMakeLists.txt里添加so文件 # 添加预编译的库 add_library(libxxx SHARED IMPORTED)# 设置库的路径 set_target_properties(libxxx PROPERTIES IMPORTED_…

C++校招八股

c类的访问权限与继承方式 公有成员在任何地方都可以被访问&#xff0c;包括类的外部和派生类。受保护成员在类的内部和派生类中可以被访问&#xff0c;但在类的外部不可访问。 私有成员只能在类的内部访问&#xff0c;包括类的成员函数和友元函数&#xff0c;不允许在类的外部…

大数据面试题 —— 数据仓库

目录 数据仓库是什么数据仓库和数据库的区别为什么要对数据仓库分层数仓分层&#xff0c;以及每一层的作用维度建模的三种模型范式建模、维度建模维度建模过程&#xff0c;如何确定这些维度 ***维度模型的各个维度之间是怎么聚合的聚合过程的数据倾斜怎么解决&#xff1f;数据质…

【FX110】2024外汇市场中交易量最大的货币对是哪个?

作为最大、最流动的金融市场之一&#xff0c;外汇市场每天的交易量高达几万亿美元&#xff0c;涉及到数百种货币。不同货币对的交易活跃程度并不一样&#xff0c;交易者需要根据货币对各自的特点去进行交易。 全年外汇市场中涉及美元的外汇交易超过50%&#xff01; 实际上&…

基于Vue3与ElementUI Plus的酷企秀场景可视化DIY设计器:前端技术引领下的数字化展示新篇章

一、引言 在当今信息化高速发展的时代&#xff0c;企业对于展示自身形象、提升用户体验以及增强品牌知名度的需求日益迫切。针对这一市场需求&#xff0c;我们推出了基于Vue3与ElementUI Plus的酷企秀场景可视化DIY设计器。该产品不仅具备电子画册、VR全景、地图秀三大核心功能…

MATLAB 三维空间中在两点之间等间隔插入多个点 (67)

MATLAB 三维空间中在两点之间等间隔插入多个点 (67) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 用于加密直线点云,具体为根据给定的直线端点,沿着该直线方向,插入多个点,从而加密。具体方法和效果如下所示: 二、算法实现 1.代码 代码如下(示例): % 定…

【Qt QML】Frame组件

Frame&#xff08;框架&#xff09;包含在&#xff1a; import QtQuick.Controls继承自Pane控件。用于在可视框架内布局一组逻辑控件。简单来说就是用来包裹和突出显示其他可视元素。Frame不提供自己的布局&#xff0c;但需要自己对元素位置进行设置和定位&#xff0c;例如通过…

C语言leetcode刷题笔记2

C语言leetcode刷题笔记2 第4题&#xff1a;283.移动零互换直接移动 第5题&#xff1a;122.买卖股票的最佳时机‖递归&#xff08;超时&#xff09;动态规划贪心算法 第6题&#xff1a;49.字母异位词分组优化 第4题&#xff1a;283.移动零 给定一个数组 nums&#xff0c;编写一…

艾体宝方案 | 加密USB金融解决方案

在现代金融行业中&#xff0c;保护敏感数据和合规性已成为至关重要的任务。为了帮助金融公司应对移动性风险和合规挑战&#xff0c;我们提供了一种高效的加密USB解决方案。 一、为什么金融公司需要加密USB解决方案 1、降低移动性风险 金融服务公司正在迅速过渡到一种模式&a…

智慧旅游引领未来风尚,科技助力旅行更精彩:科技的力量推动旅游业创新发展,为旅行者带来更加便捷、高效和智能的旅行服务

目录 一、引言 二、智慧旅游的概念与特点 &#xff08;一&#xff09;智慧旅游的概念 &#xff08;二&#xff09;智慧旅游的特点 三、科技推动旅游业创新发展 &#xff08;一&#xff09;大数据技术的应用 &#xff08;二&#xff09;人工智能技术的应用 &#xff08;…