Unity3D_UGUI倒计时_比较精准的倒计时
可能倒计时的功能太简单了,没有找到关于倒计时的博客参考,所以本人自己写了倒计时的功能,希望能帮助做Unity的小伙伴们绕过一些坑。
实现效果如下:
Hierarchy 面板层级关系:
将C#脚本挂载到“Text_CounDown”上运行,即可实现如图所示功能。
C#脚本如下:
using UnityEngine; using UnityEngine.UI; public class UserSystem : MonoBehaviour { // 用于现实倒计时的 UI 组件 private Text counDown; // 用于积累时间(累加 Time.deltaTime) private float timeFloat; // 需要倒计时多长时间(以 分 为单位) [Range(0f, 10f)]if (minInt == 0) secondInt = (int)(min * 60);
public float min = 5.05f; // 用于显示倒计时的分钟数 private int minInt; // 用于显示倒计时的秒数 private int secondInt; private void Start() { // 得到用于现实倒计时的 UI 组件 counDown = transform.Find("Text_CountDown").GetComponent<Text>(); // 赋值分钟数 minInt = (int)min; // 赋值秒数(分钟数为 0 时需要判断,否则除数为 0 会报错)
else secondInt = (int)((min % minInt) * 60);
// 赋值倒计时秒数的初始值 timeFloat = 60 - secondInt; } private void Update() {
// 倒计时秒数降到 0 以下时,分钟数下降 1
if(60 - timeFloat < 0)
{
// 更新秒数
timeFloat -= 60f;
// 分钟数下降 1
minInt--;
// 当倒计时为 0 时,调用一个方法 或 切换场景
if (minInt < 0)
{
// TODO
}
}
// 累加时间(将倒计时的误差降到最低) timeFloat += Time.deltaTime; // 更新 秒数 secondInt = (int)(60 - timeFloat); counDown.text = minInt.ToString("00") + ":" + secondInt.ToString("00"); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统