Unity 3d 实现倒计时
来源:互联网 发布:淘宝比较真的法国代购 编辑:程序博客网 时间:2024/05/09 08:31
在做吃金币的游戏的时候,感觉只有金币数的增加太单调了,于是增加了倒计时的功能。
查实现方法的时候,看了很多种方法但还是不懂具体怎么实现,最后在贴吧找到了方法成功实现。
首先是常规操作,创建Text,然后放到合适的位置。
然后新建一个空GameObject,添加脚本CountDown.cs。
脚本代码如下:
public GameObject text;public int TotalTime = 60;void Start (){ StartCoroutine(CountDown());}IEnumerator CountDown(){ while (TotalTime >=0) { text.GetComponent<Text>().text = TotalTime.ToString(); yield return new WaitForSeconds(1); TotalTime--; }}
然后将Text拉到空GameObject的GameObject属性上,就建立了连接,再打开游戏,就能看见倒计时了。
代码里用到了协程,写博客就是为了强化学习这一知识点。
协程其实就是一个IEnumerator(迭代器),IEnumerator 接口有两个方法 Current 和 MoveNext() ,只有当MoveNext()返回 true时才可以访问 Current,否则会报错。迭代器方法运行到 yield return 语句时,会返回一个expression表达式并保留当前在代码中的位置。 当下次调用迭代器函数时执行从该位置重新启动。
Unity在每帧做的工作就是:调用 协程(迭代器)MoveNext() 方法,如果返回 true ,就从当前位置继续往下执行。
协程不是线程,也不是异步执行的,是Unity每帧LateUpdate()之后都会去处理的函数。
代码中的StartCoroutine 即为开始执行协程。yield return new WaitForSeconds(1f);的意思为等待1秒 , 一段指定的时间延迟之后继续执行,在所有的Update函数完成调用的那一帧之后。这起到控制时间的作用。在总时间为0前,在GUI的Text上更新时间对象后,延时一秒,然后时间减一秒,重复更新。
- Unity 3d 实现倒计时
- Unity 倒计时简单实现
- Unity 实现倒计时 协程
- unity实现3D饼图
- Unity 3D 存档实现
- Unity内实现倒计时组件
- 纯CSS实现的3D倒计时效果
- Unity 3D UV实现小地图
- Unity 3D实现血量增加减少
- Unity 3D 实现背包效果
- Unity中实现3D物体跳跃
- Unity 实现鼠标拖动3D物体
- Unity 3D实现帧同步技术
- Unity 立体3D VR的实现
- Unity 3D液体浮力实现
- Unity 3D碰撞实现方法
- unity倒计时
- unity游戏开发----unity中自定义比分倒计时实现
- 纪 ACM 退役-再回首
- 努力敲代码,以此作为记录
- 学习笔记-DTFT、DFS和DFT的联系
- 如何从菜鸟到技术大牛
- Spring 整合redis
- Unity 3d 实现倒计时
- JVM(二):HotSpot虚拟机对象探秘
- 跟着小甲鱼学Python第二天
- 爱奇艺2018秋季校招算法工程师(第一场)C 平方串【划分+LCS】B 奶牛编号【排序】A 括号匹配深度【栈】
- 工业和信息化部发布《促进新一代人工智能产业发展三年行动计划(2018-2020年)
- 入坑~
- 修真院_JAVA_TASK_1_PART_3
- CSDN博客——Markdown的表格的处理
- Java过滤器与SpringMVC拦截器之间的关系与区别