浅谈Unity之 秒表的实现 / 倒计时的实现

简介: 秒表的实现 / 倒计时的实现

前言:每日记录自己学习unity的心得和体会,小弟才疏学浅,如有错误的地方,欢迎大佬们指正,感谢~



1.计时器的实现   第一种方法

/// <summary>

   /// 秒表的实现方法      创建一个Text  挂在上面即可

   /// </summary>

   private float timeSpend = 0;

   private int hour;   //小时

   private int minute; //分钟

   private int second; //秒

   private int millisecond; //毫秒

   private Text recealText;  //显示的text

   private void Start()

   {

       recealText = this.transform.GetComponent<Text>();

   }

   // Update is called once per frame

   void Update()

   {

       timeSpend += Time.deltaTime;

       hour = (int)timeSpend / 3600;

       minute = ((int)timeSpend - hour * 3600) / 60;

       second = (int)timeSpend - hour * 3600 - minute * 60;

       millisecond = (int)((timeSpend - (int)timeSpend) * 1000);

       recealText.text = string.Format("{0:D2}:{1:D2}:{2:D2}:{3:D3}", hour, minute, second, millisecond);

   }

第二种方法实现  

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

public class Timer_Clock : MonoBehaviour

{

   /// <summary>

   /// 秒表的实现方法      创建一个Text  挂在上面即可

   /// </summary>

   private float timeSpend = 0;

   private int hour;   //小时

   private int minute; //分钟

   private int second; //秒

   private int millisecond; //毫秒

   public Text recealText;  //显示的text

   public bool mator = false;

   private void Start()

   {

       recealText = this.transform.GetComponent<Text>();

       StartCoroutine(timerr ());

   }

   IEnumerator timerr()

   {

       while (!mator)

       {

           timeSpend += Time.deltaTime;

           hour = (int)timeSpend / 3600;

           minute = ((int)timeSpend - hour * 3600) / 60;

           second = (int)timeSpend - hour * 3600 - minute * 60;

           millisecond = (int)((timeSpend - (int)timeSpend) * 1000);

           recealText.text = string.Format("{0:D2}:{1:D2}:{2:D2}:{3:D3}", hour, minute, second, millisecond);

           yield return new WaitForFixedUpdate();

       }          

   }

   public void OnDestyoy_OBJ()

   {

       Destroy(this.gameObject);

   }

}


2.倒计时的实现  

创建一个Text 脚本挂在上面即可

using System;

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

/// <summary>

/// 倒计时的实现

/// </summary>

public class CountDownTime : MonoBehaviour

{

   private Text text;

   int Shi;

   int Fen;

   int miao;

   private bool aa;

   public float time;

   // Start is called before the first frame update

   void Start()

   {

       text = this.GetComponent<Text>();

       StartCoroutine("enumerator");

       //Endkisijd();

   }

 

   public void Endkisijd()

   {            

       aa = true;      

   }

   #region   第一种方法

   IEnumerator enumerator()

   {      

       while (time >= 0)

       {

           Shi = (int)time / 3600;

           Fen = (int)time % 3600 / 60;

           miao = (int)time % 60;

           text.text = string.Format ("{0}:{1}:{2}",Shi,Fen ,miao );

           yield return new WaitForSeconds(1);

           time--;

       }

   }

   #endregion

   // Update is called once per frame

   void Update()

   {

       #region 第二种方法

       /*          

       if (aa)

       {

           Shi = (int)time / 3600;

           Fen = (int)time % 3600 / 60;

           miao = (int)time % 60;

           text.text = string.Format("{0}:{1}:{2}", Shi, Fen, miao);

       }

       if (time > 0)

       {

           time -= Time.deltaTime;

       }

       else

       {

           text.text = string.Format("{0}:{1}:{2}", 00, 00, 00);

           aa = false;

       }      

       */

       #endregion

   }

}


相关文章
|
图形学
Unity 秒表的实现
在Unity中实现秒表功能,核心是利用Time.deltaTime记录每帧经过的时间。第一种方法通过Update函数每帧累加时间并更新UI显示;第二种方法使用协程IEnumerator,在固定更新间隔内累加时间,适合更精确的时间控制。两种方法均包含小时、分钟、秒和毫秒的计算与显示。 示例代码展示了如何创建Text组件并实时更新秒表的时间格式。第一种方法简单直接,适用于大多数场景;第二种方法通过协程提供更灵活的时间管理,适合需要暂停或复杂逻辑控制的场景。
|
监控 图形学
Unity 倒计时的实现
在 Unity 中实现倒计时功能,主要利用 `Time.deltaTime` 进行精确的时间计算和监控。本文介绍两种常见实现方法:一是通过 `WaitForSeconds(1)` 每秒递减时间,二是基于 `Update()` 函数每帧减去 `Time.deltaTime`。代码中包含详细的注释和示例,需确保挂载 Text 组件以显示倒计时。
实现计时器和倒计时工具(Unity3D)
今天分享一下如何基于Unity3D做计时器工具,为了方便演示,使用了UGUI的Text,代码简单具有拓展性,然后有什么错误或者意见也欢迎大家给我提出来。微信二维码已经显示在博客主页,有想要沟通学习的,项目外包的都可以加一下。 分享一下我另一篇关于时间计时的文章: 【Unity3D】获取到游戏时间,并显示出来
Unity3D-常用小功能详解,例子(得分变动效果、倒计时)
Unity3D-Demo多个功能方法 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
1789 0
|
6月前
|
机器学习/深度学习 人工智能 图形学
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
554 9
|
6月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
1281 6
|
图形学 缓存 算法
掌握这五大绝招,让您的Unity游戏瞬间加载完毕,从此告别漫长等待,大幅提升玩家首次体验的满意度与留存率!
【8月更文挑战第31天】游戏的加载时间是影响玩家初次体验的关键因素,特别是在移动设备上。本文介绍了几种常见的Unity游戏加载优化方法,包括资源的预加载与异步加载、使用AssetBundles管理动态资源、纹理和模型优化、合理利用缓存系统以及脚本优化。通过具体示例代码展示了如何实现异步加载场景,并提出了针对不同资源的优化策略。综合运用这些技术可以显著缩短加载时间,提升玩家满意度。
1820 6

热门文章

最新文章