Unity中实现倒计时

2023-10-27

Unity中使用Coroutine(协程)实现倒计时功能

在这里插入图片描述

核心代码:

do {
        currentMinute = minute;
            do {
                while (pause) {
                    yield return null;
                }
                second--;
                if (OnCountDowning != null) {
                    OnCountDowning (minute, second);
                }
                yield return new WaitForSeconds (1);
            } while (second > 0);
            second = 60;
            minute--;
        } while (minute >= 0);

定义接口定义闹钟的基础功能:

public interface ICountDown {
    void StartCountDown ();
    void StopCountDown ();
    Action OnCountDownStart { get; set; }
    Action OnCountDownEnd { get; set; }
    Action OnCountDownPause { get; set; }
    Action<int, int> OnCountDowning { get; set; }
    bool Pause { get; set; }
}

部分实现代码:

    /// <summary>
    /// 开始计时回调
    /// </summary>
    /// <value></value>
    public Action OnCountDownStart { get; set; }
    /// <summary>
    /// 计时结束回调
    /// </summary>
    /// <value></value>
    public Action OnCountDownEnd { get; set; }
    /// <summary>
    /// 计时暂停回调
    /// </summary>
    /// <value></value>
    public Action OnCountDownPause { get; set; }
    /// <summary>
    /// 计时过程回调
    /// </summary>
    /// <value>int分别代表分钟数和秒钟数</value>
    public Action<int, int> OnCountDowning { get; set; }

    [SerializeField][Header ("分钟")]
    private int minutes = 0;
    [SerializeField][Header ("秒钟")]
    private int seconds = 0;

    [SerializeField]
    private bool pause = false;
    /// <summary>
    /// 暂停当前倒计时
    /// </summary>
    public bool Pause {
        get { return pause; }
        set {
            pause = value;
            if (OnCountDownEnd != null) {
                OnCountDownEnd ();
                Debug.Log ("时间暂停");
            }
        }
    }
    /// <summary>
    /// 当前秒钟数
    /// </summary>
    /// <value></value>
    public int currentSecond { get; private set; }
    /// <summary>
    /// 当前分钟数
    /// </summary>
    /// <value></value>
    public int currentMinute { get; private set; } //代表当前分钟数

使用方式:

话不多说,Demo中都有,Demo扫码关注 ->当前文章末尾 获取

欢迎关注

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity中实现倒计时 的相关文章

  • 深度学习配置CUDA8.0/9.0及对应版本cuDNN安装

    本人为中科院测地所博士生 所研究专业为自然地理学 遥感数据分析方向 研究课题偏向于深度学习 由于本人不是计算机专业 故有关计算机配置及操作方面相较于计算机专业人员不是那么专业 所以请各位大牛大神绕道 我这里所做的一些工作比较浅显 仅供需要的

随机推荐

  • 纯CSS实现轮播图

    利用CSS实现一个轮播图 实现无缝衔接 平滑过渡 hover暂停效果 本文利用纯CSS实现一个轮播图 代码简捷 实现简单 没有js的接入 为一定场景下的轮播图提供一个简单的实现 先看效果图 1 思路解析 我们把整个轮播分为三个区域解析 分别
  • C语言程序设计打鱼还是晒网,C语言编程三天打鱼两天晒网

    满意答案 dmmk2822 2018 11 05 采纳率 46 等级 6 已帮助 160人 中国有句俗语叫 三天打鱼两天晒网 某人从 1990年 1月 1日起开始 三天打鱼两天晒网 问这个人在以后的某一天中是 打鱼 还是 晒网 根据题意可以
  • 网线传输速度测试_网络传输速率及测速方法

    网络传输速率概述根据国家颁布的通信行业标准 固定宽带4M 6M 12M 20M产品及3G网络21M 42M产品公布的速率均是指数据单位比特 秒 bps 而平常用户上网软件或者下载速度指的是字节 秒 Byte s 二者之间的换算关系为8比特
  • 信号与系统—傅里叶级数

    写在前面 相信很多接触傅里叶级数的人都觉得这是一个很复杂的东西 包含大量的复杂公式并且不知道它是用来干什么的 此文从傅里叶级数的最初产生过程进行介绍 产生之初必然伴也随着某种应用 更准确的说是应用促使发展出傅里叶级数来解决现实世界中存在的问
  • 自动控制原理_卢京潮_线性系统的时域分析与校正_学习笔记

    总目录 第一章自动控制的一般概念 第二章控制系统的数学模型学习笔记 https blog csdn net mahoon411 article details 112555468 第三章线性系统的时域分析与校正学习笔记 https blog
  • 总结-unity-生命周期图

    完整的生命周期图
  • Ajax 的GET请求和POST请求

    Ajax 全称是Asynchronous Javascript And XML 异步JavaScript和XML 在网页中 利用XMLHttpRequest对象和服务器进行数据交互的方式 基于浏览器的开发者工具分析通信过程 1 打开浏览器
  • phpstudy+phpstorm+navicat环境配置

    phpstudy phpstorm navicat环境配置 这篇文章对我帮助很大 附上链接 https blog csdn net u012861467 article details 54692236 本文章着重记录学习过程如果对你有帮助
  • 看雪学习笔记-[原创]EXP编写学习 之 栈溢出(一)

    看雪学习笔记 原创 EXP编写学习 之 栈溢出 一 https www exploit db com exploits 10619 usr bin python coding UTF 8 char x41 27000 Fileptr ope
  • VMware Workstation搭建Centos7虚拟机详细步骤

    直接按照图文步骤进行操作即可 目录 1 新建虚拟机 2 典型安装 3 稍后安装操作系统 4 版本选择CentOS 7 64位 5 设置虚拟机的名称和位置 6 设置磁盘大小 7 虚拟机向导任务完成 8 虚拟机设置 9 开启虚拟机 10 正式安
  • Python——文件搜索工具

    功能 通过输入一个目标路径和关键字 检索路径下所有文件和子文件中是否有包含关键字的文件 实现 由于需要遍历路径的子文件 因此使用os walk可以递归遍历操作系统的所有文件 具体代码如下 for dirpath dirnames filen
  • 第一章 函数 极限 连续

    第一章 函数 极限 连续 第一节 函数 一 函数的概念及常见函数 1 函数概念 函数的两个基本要素 对应关系 定义域 判断两函数相等 从函数的两基本要素入手 即两函数的对应关系 表达式 定义域相同 对 于 任 意 x D 变 量 x 按 照
  • 时序分解

    时序分解 MATLAB实现MVMD多元变分模态分解信号分量可视化 目录 时序分解 MATLAB实现MVMD多元变分模态分解信号分量可视化 效果一览 基本介绍 程序设计 参考资料 效果一览 基本介绍 MVMD多元变分模态分解 可直接替换Exc
  • Spring应用上下文配置:xml配置

    前言 之前的章节我们讲解了Spring的两种启动方式 分别是web xml方式 java编程方式 如同我们讲过的那样 启动Spring 实际上是启动一个容器 创建一组应用上下文 既然需要创建应用上下文 就必须配置应用上下文 指导应用上下文如
  • 网络知识-02 物理层

    文章目录 1 物理层概念 1 1 主要功能 1 2 主要特性 1 3 传输方式 1 3 1 串行传输 1 3 1 1 同步通信 比特流 报文同步 1 3 1 2 异步传输 字符同步 1 3 2 并行传输 2 数据通信 2 1 源系统 2 2
  • 《Attention is all you need》源码解析+算法详解

    Attention is all you need 源码解析 最近学习Transformer模型的时候 并且好好读了一下Google的 Attention is all you need 论文 论文地址如下 Attention is All
  • 一文详解MySQL的锁机制

    一 表级锁 行级锁 页级锁 数据库锁定机制简单来说 就是数据库为了保证数据的一致性 而使各种共享资源在被并发访问变得有序所设计的一种规则 MySQL数据库由于其自身架构的特点 存在多种数据存储引擎 每种存储引擎的锁定机制都是为各自所面对的特
  • 蓝桥杯历年赛题解析 (C/C++) B 组

    写在前面 以下网盘密码均为1111 文章目录 第十二届蓝桥杯省赛C C B组真题 PDF下载 真题解析 第十二届蓝桥杯省赛C C B组真题 PDF下载 PDF下载 点我 真题解析 真题解析 点我 注 如果您通过阅读本文解决了问题 恳请您留下
  • 应用层 —— 域名系统(DNS)

    一 域名系统 DNS 域名系统 DNS 是因特网使用的命名系统 用来把便于人们记忆的具有特定含义的主机名 如www cskaoyan com 转换为便于机器处理的 IP 地址 从概念上可将DNS分为3部分 层次域名空间 域名服务器和解析器
  • Unity中实现倒计时

    Unity中使用Coroutine 协程 实现倒计时功能 核心代码 do currentMinute minute do while pause yield return null second if OnCountDowning null