Unity 实现每隔一段时间重复执行
协程
有关Unity协程的说明详见官方Manual(官方文档写的非常详细,也有很多协程的例子,墙裂推荐入门选手反复咀嚼,不过有点考量英文水平,所以英语对程序员的重要性不用多说了)
具体实现
直接上代码:
// StartCoroutine (Func()); <-- This is the call in the function for update.
//make sure use this method to call coroutines.IEnumerator Func(){while(true)// or for(i;i;i){yield return new WaitForSeconds(2.0f); // first//Specific functions put here Debug.Log(Time.time); // then// Note the order of codes above. Different order shows different outcome.}}
具体用法上面注释已经写清楚了,上面这种写法会显示0s,2s,4s……,如果yield在前则会输出2s,4s……效果如下图(精准度受到unity帧率和秒整数不能对齐的限制
协程也是在线程内的,所以也会逐帧调用,只不过通过 “yield+等待时间” 的方式暂时挂起,来实现一个延时的效果
还有其他的延时重复效果,例如 if (Time.time取余) 嵌套等,个人感觉没有协程效果好所以这里不作推荐。
另外一种我感觉比较好的方式是利用deltatime
代码如下:
private float passedTime; // default 0public float targetTime; // set time interval//Repete(); <-This is the call in the function for update.void Repete(){if(passedTime>targetTime){// put function hereDebug.Log(Time.time);//passedTime = 0; //enter next loop}passedTime += Time.deltaTime;
这种方式没有用到协程,仅仅利用线程中每一帧的刷新
deltatime的用途很广,详细的原理建议参考这个博文
由于update的刷新频率受到游戏帧率影响,fixupdate不是很稳定(具体可以参考这篇,作者写的很详细)所以上面这种方法是很实用的
后续方法有改进会及时更新,欢迎指正!
Unity 实现每隔一段时间重复执行相关推荐
- python可以实现的功能_Python 实现某个功能每隔一段时间被执行一次的功能方法...
本人在做项目的时候遇到一个问题: 某个函数需要在每个小时的 3 分钟时候被执行一次,我希望我 15:45 启动程序,过了18 分钟在 16:03 这个函数被执行一次,下一次过 60 分钟在 17:03 ...
- 每隔一段时间自动执行一次某个方法(使用线程)[C#]
c#里,怎么让一个方法事件每隔一段时间自动执行一次?能用线程来实现吗?怎么实现? 比如:SendToService这个方法,要每隔10秒钟自动执行一次. 下面是我总结的方法: //定义线程 Threa ...
- Java 实现 Springboot 定时任务(每隔一段时间自动执行一次)
Java实现非Web项目的Springboot定时任务(每3秒自动执行一次) 前言 一.新建Java Springboot项目 二.示例代码 运行效果 总结 前言 运行非Web的Springboot项 ...
- setTimeout() 实现程序每隔一段时间自动执行
定义和用法 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 语法 setTimeout(code,millisec) 参数 描述 code 必需.要调用的函数后要执行的 Ja ...
- TLS 改变密码标准协议(Change Cipher Spec Protocol) 就是加密传输中每隔一段时间必须改变其加解密参数的协议...
SSL修改密文协议的设计目的是为了保障SSL传输过程的安全性,因为SSL协议要求客户端或服务器端每隔一段时间必须改变其加解密参数.当某一方要改变其加解密参数时,就发送一个简单的消息通知对方下一个要传送 ...
- java每隔一段时间执行_8.Android中,每隔一段时间执行某一个任务(Timer)
1,在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和 TimerTask. Tim ...
- JAVA 编写程序实现如下功能:一个线程进行如下运算1*2+2*3+3*4+……+19*20,而另一个线程则每隔一段时间读取前一个线程的运算结果。
编写程序实现如下功能:一个线程进行如下运算12+23+34+--+1920,而另一个线程则每隔一段时间读取前一个线程的运算结果. class Count{private int sum;Count(i ...
- centos网络隔一段时间就断_“路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因...
有人留言问:"路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因?"具体原因具体分析,下面和北京宽带通一起来看下这三种情况. 1.隔几十分钟就断网,有时候甚至隔几分钟就断一 ...
- 总结以下三种方法,实现c#每隔一段时间执行代码:
总结以下三种方法,实现c#每隔一段时间执行代码: 方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间: 方法二:使用System.Timers.Timer类: 方法三:使用Sys ...
最新文章
- SCDPM2012功能测试(4)—配置通知
- 二叉搜索树的插入与删除图解
- 用Android打出马奔跑的动画,一款非常好用的动画库Lottie
- 关于BeautifulSoup写class和class_
- 为什么linux桌面很刺眼,屏幕实在太亮了,眼睛都快瞎了,真心试了各种方法无效后才来问....
- RemoteApp登录到特定的域
- java中的scanner用法
- .Net中消除Dll中的dependency
- 新软件--AutoReply(自动回复),还能自动接听,做答录机
- 51中断实验与流水灯protues仿真
- finereport java无符合资料_Java报表工具FineReport常见的数据集报错错误代码和解释...
- ALM需求跟踪矩阵导出出错解决
- anaconda安装多环境
- 两个日期相差月数计算公式
- format格式化输出
- Unity3D学习之打飞碟游戏
- xml文件加密和解密
- 计算机实训word报告,计算机实训报告Mcrosoft Word 文档.doc
- bios 刷 灵耀14_华硕灵耀14 2020深度体验——这才是正统轻薄本
- 微软超级麻将AI Suphx,破解非完美信息游戏
热门文章
- java dcompiler 破解,小编教你解决win7系统玩鬼泣5提示计算机中DCOMPILeR_43.dll的恢复方案...
- 超级简单的永久关闭广告弹窗
- moviepy音视频剪辑:使用mask遮罩实现视频叠加透明效果
- ssh提交服务器不能删除文件夹,ssh下命令不能删除非空文件夹的解决方法
- Netty实战:Springboot+Netty+websocket优雅的高性能服务器 (附源码下载)
- 关于fi dd ler 手机抓包 网卡地址地址_ApkCrack 一键生成支持 Android 7.0 抓包的 apk...
- Day03-java流程控制-->switch选择结构
- 2021年最新PHP 面试、笔试题汇总(一)
- 2009年11月2日
- Linux下的ip命令