第一种方式是利用Unity中的协程,代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class DemoTest : MonoBehaviour
{public Text text;//测试用的数字public int MyTime = 60;void Start (){//开启协程
        StartCoroutine (StartUpdate ());}//一秒钟减去1
    IEnumerator StartUpdate (){while (true) {if (MyTime > 0) {MyTime -= 1;text.text = UpdateTime (MyTime);} else {break;}yield return new WaitForSeconds (1f);}}/// <summary>/// 时间换算/// </summary>/// <returns>The time.</returns>/// <param name="inputTime">输入的时间</param>string UpdateTime (int inputTime){string temp;int minute, seconds;minute = (int)(inputTime / 60);Debug.Log ("minute = " + minute);seconds = inputTime % 60;Debug.Log ("seconds = " + seconds);
//         这样的话,当minute<0的时候只有一个数字,可能有的需求上不允许,所以就换一种方式//        if (seconds >= 10) {
//            temp = "0" + minute + ":" + seconds;
//        } else {
//            temp = minute + ":" + seconds;
//        }//优化版,利用三目运算符进行取值,这样更好的实现倒计时string minTemp = (minute < 10) ? "0" + minute : minute.ToString ();string secTemp = (seconds < 10) ? "0" + seconds : seconds.ToString ();temp = minTemp + ":" + secTemp;return temp;}}

第二种方式,利用Update,原理是一样的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class DemoTest : MonoBehaviour
{public Text text;//测试用的数字public int MyTime = 60;float timer = 0;float timerInterval = 1f;void Update (){timer += Time.deltaTime;if (timer >= timerInterval) {timer = 0;MyTime -= (int)timerInterval;if (MyTime < 0) {return;}text.text = UpdateTime (MyTime);}}/// <summary>/// 时间换算/// </summary>/// <returns>The time.</returns>/// <param name="inputTime">输入的时间</param>string UpdateTime (int inputTime){string temp;int minute, seconds;minute = (int)(inputTime / 60);Debug.Log ("minute = " + minute);seconds = inputTime % 60;Debug.Log ("seconds = " + seconds);//         这样的话,当minute<0的时候只有一个数字,可能有的需求上不允许,所以就换一种方式//        if (seconds >= 10) {//            temp = "0" + minute + ":" + seconds;//        } else {//            temp = minute + ":" + seconds;//        }//优化版,利用三目运算符进行取值,这样更好的实现倒计时string minTemp = (minute < 10) ? "0" + minute : minute.ToString ();string secTemp = (seconds < 10) ? "0" + seconds : seconds.ToString ();temp = minTemp + ":" + secTemp;return temp;}
}

转载于:https://www.cnblogs.com/bw1219/p/9400157.html

Unity中传入任意数,转换成分,秒,并进行倒计时换算..(两种方式)相关推荐

  1. Linux中vim编辑文件显示行号(临时和永久两种方式)

    一.前言   在Linux中经常使用vim编辑器去修改文件,默认是不显示行号的,那如何显示呢?有临时和永久两种方式.     本文由 @大白有点菜 原创,请勿盗用,转载请说明出处!如果觉得文章还不错, ...

  2. 数仓知识10:数据库存储的两种方式-行存储和列存储

    0. 前言 目前大数据存储主要有两种方案可供选择:行存储(Row-Based)和列存储(Column-Based).业界对两种方案有许多争持,争论的焦点是:谁能够更有效地处理海量数据,且兼顾安全.可靠 ...

  3. matlab 转换 tfrecord,训练数据集与TFRecord互相转换的两种方式

    TensorFlow使用TFRecord格式来统一存储数据,该格式可以将图像数据.标签信息.图像路径以及宽高等不同类型的信息放在一起进行统一存储,从而方便有效的管理不同的属性. 将训练数据集转成TFR ...

  4. linux中安shell怎么传入参数,【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】...

    方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...

  5. 在oracle 中编写一个程序,用VC 开 发 基 于ORACLE 数 据 库 应 用 程 序 的 两 种 方 法...

    用VC 开 发 基 于ORACLE 数 据 库 应 用 程 序 的 两 种 方 法 北 京 航 空 航 天 大 学 计 算 机 科 学 与 工 程 系 黎 杰 麦 中 凡 ---- 1. 引 言 -- ...

  6. Unity中制作自定义字体的两种方式

    Unity支持自定义图片字体(CustomFont),网上有很多教程,细节不尽相同,当概括起来基本就是两种方式.一是使用BMFont,导出图集和.fnt文件,再使用图集在Unity中设置得到字体.二是 ...

  7. java中byte数组与int类型的转换(两种方式)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  8. DLL中导出函数的声明有两种方式

    本文引用自:VC编程时DLL中导出函数的声明有两种方式 一种方式是:在函数声明中加上__declspec(dllexport): 另外一种方式是:采用模块定义(.def)文件声明,(.def)文件为链 ...

  9. java如何做全局缓存_传智播客JNI第七讲 – JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式...

    讲解JNI中的全局引用/局部引用/弱全局引用.缓存jfieldID和jmethodID的两种方式,并编写两种缓存方式的示例代码. 1.从Java虚拟机创建的对象传到本地C/C++代码时会产生引用,根据 ...

最新文章

  1. consul安装配置使用
  2. Maven 新版本 3.8.1 打包报错 maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories
  3. Pytorch手敲NLP 模型训练代码四大步骤总结
  4. Rob hess 关于sift的说明
  5. 用户选购计算机可分为,助理电子商务师考试试题(1+答案)
  6. 2019 Android 高级面试题总结 从java语言到AIDL使用与原理
  7. P2468 [SDOI2010]粟粟的书架 动态规划,主席树,二分答案
  8. mysql 触发器定义变量_MySQL 函数存储过程触发器定义简单示例
  9. linux加密框架 crypto 算法管理 - 算法查找接口
  10. 剖析Caffe源码之InputLayer
  11. 事务演练 mysql
  12. Git详解之五:分布式Git
  13. rms 公式 有效值_有效值是电流电压的均方根值吗?
  14. 《极客与团队》一说到底真正重要的还是代码本身
  15. JRE 和 JDK历史版本是为了帮助开发
  16. 泰灏咨询的使命及愿景
  17. 笔记本计算机提升性能,笔记本电脑改装!轻松提升电脑性能!
  18. linux lvm删除分区,Linux LVM中的PV物理卷(硬盘或分区)删除方法
  19. MFC程序的剖析及生死因果揭秘
  20. 计算机二级心得体会论文,学习计算机二级心得体会.docx

热门文章

  1. 【LeetCode - 443】压缩字符串(模拟)
  2. 【Codeforces - 900C】Remove Extra One(思维,STLset,tricks)
  3. 【HDU - 1083 】Courses (二分图)
  4. chrome插件中调用ajax,Chrome扩展程序中的Ajax调用无效
  5. php 去掉不可见字符串,php去掉指定字符串的办法
  6. oschina mysql limit_MySQL 用 limit 为什么会影响性能?
  7. 二位数组的随机生成,遍历,求和,反转。和两个变量的^反转 源码
  8. Windows下Spring3.x计划任务实现定时备份MySql数据库
  9. 【大总结2】大学两年,写了这篇几十万字的干货总结
  10. LeetCode - Easy - 169. Majority Element