unity3d倒计时3秒怎么后台计时

Unity3D中的工具类-Time类 - stephen830 - ITeye技术网站
博客分类:
Unity3D中的工具类-Time类
1、时间:Unity提供了Time类,这个类主要用来获取当前的系统时间。 Time.time:从游戏开始后开始计时,表示截止目前共运行的游戏时间。 Time.deltaTime:获取Update()方法中完成上一帧所消耗的时间。 Time.fixedTime:FixedUpdate()方法中固定消耗的时间总和。FixedUpdate()每一帧更新的时间可以通过导航菜单栏”Edit“——”Project Settings“——”Time“菜单项去设置。 Time.fixedDeltaTime:固定更新上一帧所消耗的时间。2、等待:在程序中使用WaitForSeconds()方法可以以秒为单位让程序等待一段时间,此方法可直接使游戏主线程进入等待状态。
3、随机数:在开发中,有时需要获取程序中的随机数,这可以使用Random.Range()方法实现,其中该方法的第一个参数为随机数的起始位置,第二个参数为获取的随机数的结束位置。
4、数学:Unity开发中封装了一个数学类Mathf,使用它可以很轻松地帮我们解决复杂的数学公式。
5、四元数:四元数是非常重要的工具类之一。在Unity中所有用到模型旋转的,其底层都是有四元数实现的,它可以精确地计算模型旋转的角度。
浏览 12363
stephen830
浏览: 1693530 次
来自: 上海
非常感谢,正好用上
提示的/222.177.4.242
无法链接到ip地址,是什 ...Unity3d时间、计时管理器简介_游戏编程吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:9,194贴子:
Unity3d时间、计时管理器简介收藏
在之前文章我们提到过定时器的做法《unity教程-自定义Clock定时器类 》,在平时的游戏开发过程中,我们或多或少的会用到时间类,比如技能的冷却时间,角色的生命回复等等都会用到,而处理方式也有很多种,我们可以在每个技能上面挂载一个时间类,也可以提供一个时间管理器,来统一管理技能的冷却,个人推荐第二种做法,因为这样会更加精准!时间管理器的类主要包括 TimerManager.cs,代码如下:using Unity Eusing Susing System.Collections.G////// 移动管理///public class TimerManager{publpublic static Dictionary timerList = new Dictionary();public static void Run(){// 设置时间值TimerManager.time = Time.TimerItem[] objectList = new TimerItem[timerList.Values.Count];timerList.Values.CopyTo(objectList, 0);// 锁定foreach(TimerItem timerItem in objectList){if(timerItem != null) timerItem.Run(TimerManager.time);}}public static void Register(object objectItem, float delayTime, Action callback){if(!timerList.ContainsKey(objectItem)){TimerItem timerItem = new TimerItem(TimerManager.time, delayTime, callback);timerList.Add(objectItem, timerItem);}}public static void UnRegister(object objectItem){if(timerList.ContainsKey(objectItem)){timerList.Remove(objectItem);}}}TimerItem.cs,代码如下:using UnityEusing Spublic class TimerItem{////// 当前时间///public float currentT////// 延迟时间///public float delayT////// 回调函数///public Apublic TimerItem(float time, float delayTime, Action callback){this.currentTime =this.delayTime = delayTthis.callback =}public void Run(float time){// 计算差值float offsetTime = time - this.currentT// 如果差值大等于延迟时间if(offsetTime &= this.delayTime){float count = offsetTime / this.delayTime - 1;float mod = offsetTime % this.delayTfor(int index = 0; index & index ++){this.callback();}this.currentTime = time -}}}测试用例代码如下:using UnityEusing System.Cusing System.Collections.Gpublic class Demo : MonoBehaviour{public GameObject roleOvoid Awake(){TimerManager.Register(this, 0.3f, ()=&{Debug.Log(&0.3 -& & + System.DateTime.Now.ToString(&hh:mm:ss.fff&));});TimerManager.Register(this.gameObject, 1f, ()=&{Debug.Log(&1 -& & + System.DateTime.Now.ToString(&hh:mm:ss.fff&));});}void Update(){TimerManager.Run ();}}好了,本篇unity3d教程到此结束,下篇我们再会!资源地址:
(分享请保留)
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或工具类服务
编辑部专用服务
作者专用服务
Unity3D多计时器的实现
游戏开发过程中很多地方会用到计时器,随着项目规模的不断增大,单计时器早已不能胜任.介绍了一种在Unity3D中实现多计时器的方法.
作者单位:
西北民族大学数学与计算机科学学院,兰州,730100
年,卷(期):
在线出版日期:
基金项目:
系西北民族大学国家级大学生创新创业训练计划资助项目
本文读者也读过
相关检索词
万方数据知识服务平台--国家科技支撑计划资助项目(编号:2006BAH03B01)(C)北京万方数据股份有限公司
万方数据电子出版社【求助帖】unity3d怎么后台计时?_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:63,914贴子:
【求助帖】unity3d怎么后台计时?收藏
如题,就是想做一个像是每五分钟倒计时领取体力的功能,在游戏退出后倒计时依然在继续运行的。有没有人做过的帮助一下!
达内unity3d培训全程&实战教学&,unity3d专家讲师授课.免费unity3d课程试听中!到达内unity3d学院学习unity3d,只需4个月速成unity3d游戏工程师.
使用invokrepeate函数
可以实现倒计时
接楼上,勾选runinbackground另外不建议这样,可以采用记录最好领取系统时间,并用当前时间减去最后时间来计算,这样可以避免后台不运行或数据丢失问题
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 unity3d 倒计时 协程 的文章

 

随机推荐