前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实现计时器和倒计时工具(Unity3D)

实现计时器和倒计时工具(Unity3D)

作者头像
恬静的小魔龙
发布2022-08-07 09:14:36
7930
发布2022-08-07 09:14:36
举报
文章被收录于专栏:Unity3DUnity3D

一、前言

今天分享一下如何基于Unity3D做计时器工具,为了方便演示,使用了UGUI的Text,代码简单具有拓展性,然后有什么错误或者意见也欢迎大家给我提出来。微信二维码已经显示在博客主页,有想要沟通学习的,项目外包的都可以加一下。

分享一下我另一篇关于时间计时的文章:

【Unity3D】获取到游戏时间,并显示出来

二、效果图

计时器效果

在这里插入图片描述
在这里插入图片描述

倒计时效果

在这里插入图片描述
在这里插入图片描述

三、本文链接

本文链接:https://blog.csdn.net/q764424567/article/details/103784853

GitHub项目源码下载:https://github.com/764424567/Demo_Timer

四、代码

代码语言:javascript
复制
using UnityEngine;
using UnityEngine.UI;

public class Test_1 : MonoBehaviour
{
    string m_Mins = "0";
    string m_Sec = "0";
    float m_TempMins = 0;
    float m_TempSec = 0;
    bool m_IsTimed = true;
    bool m_IsCountDown = true;

    private void Awake()
    {
        //计时器
        //SetTimed("00:00");

        //倒计时
        SetTimed("10:00");
        string TimeStr = transform.GetComponent<Text>().text;
        string[] TimeStrSplit = TimeStr.Split(':');
        m_TempMins = float.Parse(TimeStrSplit[0]);
        m_TempSec = float.Parse(TimeStrSplit[1]);
        m_IsCountDown = false;
    }

    private void FixedUpdate()
    {
        if (m_IsCountDown)//计时器
        {
            if (m_IsTimed)
            {
                if (transform.GetComponent<Text>().text == "09:59")
                {
                    transform.GetComponent<Text>().text = "10:00";
                    m_Mins = "00";
                    m_Sec = "00";
                    m_TempMins = 0;
                    m_TempSec = 0;
                    m_IsTimed = false;
                }
                else
                {
                    if (m_TempSec >= 9)
                    {
                        m_Sec = (m_TempSec += 1).ToString();
                        if (m_TempSec == 60)
                        {
                            m_Sec = "00";
                            m_TempSec = 0;
                            m_TempMins += 1;
                        }
                    }
                    else
                    {
                        m_Sec = "0" + (m_TempSec += 1).ToString();
                    }
                    m_Mins = "0" + m_TempMins.ToString();
                    transform.GetComponent<Text>().text = m_Mins + ":" + m_Sec;
                }
            }
        }
        else//倒计时
        {
            if (m_IsTimed)
            {
                if (m_TempSec <= 10)
                {
                    if (m_TempSec == 0)
                    {
                        if (m_TempMins == 0)
                        {
                            transform.GetComponent<Text>().text = "00:00";
                            m_IsTimed = false;
                        }
                        else
                        {
                            m_TempSec = 60;
                            m_TempMins -= 1;
                            if (m_TempMins <= 10)
                            {
                                
                                m_Mins = "0" + m_TempMins.ToString();
                            }
                            else
                            {
                                m_Mins = m_TempMins.ToString();
                            }
                        }
                        m_Sec = m_TempSec.ToString();
                    }
                    else
                    {
                        m_Sec = "0" + (m_TempSec -= 1).ToString();
                    }
                }
                else
                {
                    m_Sec = (m_TempSec -= 1).ToString();
                }
                transform.GetComponent<Text>().text = m_Mins + ":" + m_Sec;
            }
        }
    }

    public void SetTimed(string time)
    {
        transform.GetComponent<Text>().text = time;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、效果图
  • 三、本文链接
  • 四、代码
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档