Unity中实现倒计时结束后干一些事情

news2025/1/16 6:37:55

问题描述:如果我们想实现在一个倒计时结束后可以执行某个方法,比如挑战成功或者挑战失败,或者其他什么的比如生成boss之类的功能,而且你又不想每次都把代码复制一遍,那么就可以用下面这种方法。

结构

实现步骤

创建一个这样的结构(一个图片CountdownManage,两个文本Tips,countdown)

 编写脚本CountdownManage并拖到CountdownManage图片上

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class CountdownManage : MonoBehaviour
{
    public static CountdownManage instance;
    private Action Dosomething;
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
    }
    public void ShowCountdown(string tips, int time, Action dosomething)
    {
        gameObject.SetActive(true);
        Dosomething += dosomething;//添加委托
        gameObject.transform.Find("Tips").GetComponent<Text>().text = tips;
        StartCoroutine(Countdown(time));
    }
    IEnumerator Countdown(int time)
    {
        while (time > 0)
        {
            gameObject.transform.Find("countdown").GetComponent<Text>().text = time.ToString();
            time--;
            yield return new WaitForSeconds(1);
        }
        Dosomething?.Invoke();
        gameObject.SetActive(false);
        Dosomething = null;//清空委托
    }
}

创建一个空对象并编写脚本TextCountdown ,将脚本加到空对象上

using UnityEngine;

public class TextCountdown : MonoBehaviour
{
   void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space)) 
        {
            CountdownManage.instance.ShowCountdown("空格按下的倒计时", 6, SpaceCountdown);
        }
        if (Input.GetKeyDown(KeyCode.E))
        {
            CountdownManage.instance.ShowCountdown("E按下的倒计时", 10, ECountdown);
        }
    }
    void SpaceCountdown()
    {
         Debug.Log("空格按下");
    }
    void ECountdown()
    {
         Debug.Log("F1按下");
    }
}

运行游戏按下空格就会出现对应的倒计时,倒计时结束后就会打印对应的调用方。(倒计时结束后按下E就会进入新的倒计时)

 

 如果这篇文章对你有帮助可以点个赞哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2277414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Elasticsearch】filterQuery过滤查询

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

带头双向循环链表(数据结构初阶)

文章目录 双向链表链表的分类概念与结构实现双向链表定义链表结构链表打印判空申请结点初始化头插尾插头删尾删查找指定位置插入和删除销毁链表 顺序表和链表的分析结语 欢迎大家来到我的博客&#xff0c;给生活来点impetus&#xff01;&#xff01; 这一节我们学习双向链表&a…

在eNSp上telnet一下吧

在上篇博客&#xff1a;DNS 我们提到了telnet和设备带外管理、带内管理&#xff0c;它确实是非常有趣的一个知识点哦&#xff0c;接下来我们一起来学习学习吧~ Telnet&#xff08;远程登陆协议&#xff09; Telnet基于TCP 23号端口&#xff0c;典型的C/S架构模式&#xff0c;是…

Spring MVC复杂数据绑定-绑定集合

【图书介绍】《SpringSpring MVCMyBatis从零开始学&#xff08;视频教学版&#xff09;&#xff08;第3版&#xff09;》_【新华文轩】springspring mvcmybatis从零开始学(视频教学版) 第3版 正版-CSDN博客 《SpringSpring MVCMyBatis从零开始学(视频教学版)&#xff08;第3版…

基于禁忌搜索算法的TSP问题最优路径搜索matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于禁忌搜索算法的TSP问题最优路径搜索&#xff0c;旅行商问题&#xff08;TSP&#xff09;是一个经典的组合优化问题。其起源可以追溯到 19 世纪初&#xff0c;…

静态综合路由实验

实验拓扑 实验要求 1.除R5的环回地址外&#xff0c;整个其他所有网段基于192.168.1.0/24进行合理的IP地址划分 2.R1-R4每个路由器存在两个环回接口&#xff0c;用于模拟pc网段&#xff1b;地址也在192.168.1.0/24这个网络范围内 3.R1-R4上不能直接编写到达5.5.5.0/24的静态路由…

前端组件开发:组件开发 / 定义配置 / 配置驱动开发 / 爬虫配置 / 组件V2.0 / form表单 / table表单

一、最早的灵感 最早的灵感来自sprider / 网络爬虫 / 爬虫配置&#xff0c;在爬虫爬取网站文章时候&#xff0c;会输入给爬虫一个配置文件&#xff0c;里边的内容是一个json对象。里边包含了所有想要抓取的页面的信息。爬虫通过这个配置就可以抓取目标网站的数据。其实本文要引…

[Deep Learning] Anaconda+CUDA+CuDNN+Pytorch(GPU)环境配置-2025

文章目录 [Deep Learning] AnacondaCUDACuDNNPytorch(GPU)环境配置-20250. 引子1. 安装Anaconda1.1 安装包下载&#xff1a;1.2 启用安装包安装1.3 配置(系统)环境变量1.4 验证Anaconda是否安装完毕1.5 Anaconda换源 2. 安装CUDACuDNN2.1 判断本机的CUDA版本2.2 下载适合自己CU…

直播预告丨Arxiv Insight:用 AI 重新定义论文检索

1月16日晚上20:00-20:50&#xff0c;Zilliz直播间&#xff0c;深圳大学计算机视觉所硕士牛增豪先生将带来《Arxiv Insight&#xff1a;用 AI 重新定义论文检索》分享&#xff0c;届时他将讲述从零到一构建 Arxiv Insight产品的过程&#xff0c;思考以及未来计划。欢迎大家锁定Z…

STM32 FreeRTOS 的任务挂起与恢复以及查看任务状态

目录 任务的挂起与恢复的API函数 任务挂起函数 任务恢复函数 任务恢复函数&#xff08;中断中恢复&#xff09; 函数说明 注意事项 查看任务状态 任务的挂起与恢复的API函数 vTaskSuspend()&#xff1a;挂起任务, 类似暂停&#xff0c;可恢复 vTaskResume()&#xff1a…

4. 使用springboot做一个音乐播放器软件项目【数据库表的创建】

上一章文章 我们做了音乐播放器 这个项目一些公共封装的一些工具类。参考网址&#xff1a; https://blog.csdn.net/Drug_/article/details/145093705 那么这篇文章 我们开始创建数据表。来存储我们项目中所需要存储的数据。 对于 我们这个项目 版本一 需要开发的核心功能 在 第…

leetcode刷题记录(五十四)——560. 和为 K 的子数组

&#xff08;一&#xff09;问题描述 560. 和为 K 的子数组 - 力扣&#xff08;LeetCode&#xff09;560. 和为 K 的子数组 - 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。子数组是数组中元素的连续非空序列。 示例 1&am…

软考,质量管理。

项目质量管理&#xff0c;PMBOOK 质量是满足需求的能力的特性的总结 需求的满足程度 质量通常是指产品的质量&#xff0c;广义上的质量还包括工作质量。产品质量是指产品的使用价值及其属性&#xff1b;而工作质量则是产品质量的保证&#xff0c;它反映了与产品质量直接有关的…

Re78 读论文:GPT-4 Technical Report

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名&#xff1a;GPT-4 Technical Report 官方博客&#xff1a;GPT-4 | OpenAI appendix懒得看了。 文章目录 1. 模型训练过程心得2. scaling law3. 实验结果减少风险 1. 模型训练过程心得 模型结构还…

LeetCode | 图文详细描述动态规划DP算法及经典题型

本文将用简单直白的方式&#xff0c;从零开始带你掌握动态规划的精髓。你会发现&#xff1a; 动态规划其实没那么难——它就是递归的“记性”版。状态转移方程不再玄学——从题目思路到实现&#xff0c;手把手教你推导。经典题型剖析——从“爬楼梯”到“背包问题”&#xff0…

学习threejs,使用RollControls相机控制器

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.RollControls 相机控…

期权懂|场内期权合约行权价格是如何设定制度的?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 场内期权合约行权价格是如何设定制度的&#xff1f; 场内期权合约的行权价格是期权合约中的一个关键要素&#xff0c;它决定了期权买方在期权到期日或之前买入&#xff08;对于…

设计模式相关面试

设计模式 工厂方法模式 简单工程模式 工厂方法设计模式 抽象工厂设计模式 工厂方法小结 策略模式 案例&#xff08;工厂模式策略模式&#xff09; 责任链设计模式 概述 常见使用方式 常见技术场景 单点登录如何实现 权限认证如何实现 上传数据的安全如何控制 遇到了那些比较棘…

C#轻松实现ModbusTCP服务器接口

大家好&#xff01;我是付工。 通透&#xff01;终于把ModbusRTU弄明白了 这样看来&#xff0c;ModbusTCP协议太简单了 太简单了&#xff01;C#轻松实现Modbus通信 前面给大家介绍了一系列关于Modbus和ModbusTCP的知识&#xff0c;主要针对的是ModbusTCP客户端。 在实际开…

比较之舞,优雅演绎排序算法的智美篇章

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文一、冒泡排序&#xff1a;数据海…