服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - Unity实现倒计时功能

Unity实现倒计时功能

2022-09-08 15:35SakuraJI C#

这篇文章主要为大家详细介绍了Unity实现倒计时功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Unity实现倒计时功能的具体代码,供大家参考,具体内容如下

有两种思路可以实现倒计时,一个是Update,另一个是协程。这里只展示核心的算法思路,有收获的还请点个赞哦

Update

首先定义三个变量,访问权限按需求设置:

?
1
2
3
4
float GameTime; // 游戏总时间,int或者float都可,单位为秒
float TimeLeft; // 游戏剩余时间,单位为秒
float Timer; // 计时器
Text TimeCountDown; // 计时器Text引用

思路: 首先用GameTime初始化TimeLeft,在Update中,计时器不断增加,每过一秒,TimeLeft就-1,然后重置计时器。代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void Update()
{
 Timer += Time.deltaTime;
 if (Timer >= 1) // 每过一秒执行一次
 {
 GameTime -= 1; // 剩余秒数-1
 
 if (TimeLeft <= 0) // 剩余时间为0,游戏暂停
 {
  Time.timeScale = 0;
 }
 
 int _minute = TimeLeft / 60; // 计算剩余分钟数
 float _second = TimeLeft % 60; // 计算不足一分钟的剩余秒数
 
 // 对计时器文本格式化输出
 TimeCountDown.text = _minute + ":" + string.Format("{0:00}", _second);
 
 m_TrGame = 0f; // 重置计时器
 }
}

协程

相对来说,协程就要简单一点。同样先定义几个变量:

?
1
2
3
float GameTime; // 游戏总时间,int或者float都可,单位为秒
float TimeLeft; // 游戏剩余时间,单位为秒
Text TimeCountDown; // 计时器Text引用

思路: 首先依然用GameTime初始化TimeLeft,然后在协程中设置循环,每次循环TimeLeft都-1。代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
IEnumerator TimeCountDown()
{
 TimeLeft = GameTime; // 初始化剩余时间
 
 while (true)
 {
 int _minute = TimeLeft / 60; // 计算剩余分钟数
 float _second = TimeLeft % 60; // 计算不足一分钟的剩余秒数
 
 // 对计时器文本格式化输出
 TimeCountDown.text = _minute + ":" + string.Format("{0:00}", _second);
 
 if (TimeLeft <= 0) // 剩余时间为0,游戏暂停
 {
  Time.timeScale = 0;
 yield break; // 退出协程必须有,上一条语句不能暂停协程
 }
 
 yield return new WaitForSeconds(1f); // 每次进入循环都等待1s
 }
}

一定要自己写一遍哦

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_37701948/article/details/106376458

延伸 · 阅读

精彩推荐
  • C#C#中对称加密算法的踩坑日常记录

    C#中对称加密算法的踩坑日常记录

    这篇文章主要给大家介绍了关于C#中对称加密算法的踩坑日常记录,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需...

    ixysy8822022-07-28
  • C#WPF自定义MenuItem样式的实现方法

    WPF自定义MenuItem样式的实现方法

    这篇文章主要给大家介绍了关于WPF自定义MenuItem样式的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用WPF具有一定的参考学习价值,需...

    一叶知秋,知寒冬3482022-07-24
  • C#C#文件目录操作方法汇总

    C#文件目录操作方法汇总

    本文主要列举出C#文件和目录操作的一些方法,包括创建、移动、遍历目录,读写文件等方法,有需要的小伙伴可以学习一下。...

    jerrylsxu7902021-11-19
  • C#C#调用WebService实例开发

    C#调用WebService实例开发

    那么,我们怎么在项目中调用WebService这个方法呢,其实这和调用天气的webservice是一个道理,首先,通过添加“web服务 引用”将,你写的webservice引用进来,...

    C#教程网4882021-10-27
  • C#C#中如何获取文件图标

    C#中如何获取文件图标

    这篇文章主要介绍了C#中如何获取文件图标的相关资料,需要的朋友可以参考下...

    提里科留斯4552021-11-17
  • C#C# 获取进程退出代码的实现示例

    C# 获取进程退出代码的实现示例

    这篇文章主要介绍了C# 获取进程退出代码的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    林德熙3782022-03-09
  • C#C# out关键词的应用实例

    C# out关键词的应用实例

    下面小编就为大家分享一篇C# out关键词的应用实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    杨明波(Leo Yang)11792022-02-16
  • C#C#环形队列的实现方法详解

    C#环形队列的实现方法详解

    这篇文章先是简单的给大家介绍了什么是环形队列和环形队列的优点,然后通过实例代码给大家介绍C#如何实现环形队列,有需要的朋友们可以参考借鉴,...

    独孤飞7392021-12-07