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

ops/2025/1/20 2:41:47/

问题描述:如果我们想实现在一个倒计时结束后可以执行某个方法,比如挑战成功或者挑战失败,或者其他什么的比如生成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.ppmy.cn/ops/151540.html

相关文章

第十一章 图论

#include <iostream> #include <cstdio> #include <vector>using namespace std;const int MAXN 1000;vector<int> graph[MAXN]; //用向量存储邻接表中的每个点及其连接的的其他点int main(){return 0; } #include <iostream> #include &…

【ROS2 中间件RMW】基于FastDDS共享内存实现ROS2跨进程零拷贝通讯

前言 谈及ROS2的通讯机制&#xff0c;话题通讯作为一个最为常用的通讯手段&#xff0c;相信大家都不为陌生。但是即便话题通讯提供了一种跨进程的通讯方式&#xff0c;我们难免无法防止其在发布和订阅 的时候传递的消息被进行内存中的一次拷贝。因此诞生了零拷贝(zero_copy)这…

内网渗透测试工具及渗透测试安全审计方法总结

1. 内网安全检查/渗透介绍 1.1 攻击思路 有2种思路&#xff1a; 攻击外网服务器&#xff0c;获取外网服务器的权限&#xff0c;接着利用入侵成功的外网服务器作为跳板&#xff0c;攻击内网其他服务器&#xff0c;最后获得敏感数据&#xff0c;并将数据传递到攻击者&#xff0…

基于微信小程序的校园运动场地预约系统设计与实现

一.前言 选题背景&#xff1a; 随着社会的进步和人们生活水平的提高&#xff0c;健康意识逐渐增强&#xff0c;越来越多的人开始关注和参与体育运动。在校园中&#xff0c;学生们也积极参与各种体育活动&#xff0c;以提升身体素质和促进全面发展。然而&#xff0c;由于校园运动…

[Qualcomm]Qualcomm MDM9607 SDK代码下载操作说明

登录Qualcomm CreatePoing Qualcomm CreatePointhttps://createpoint.qti.qua

记录一次微信小程序使用云能力开发的过程

对于开发微信小程序云开发不知从何起的同学们&#xff0c;可以当作一次参考。虽说官方有文档&#xff0c;有模板示例&#xff0c;但是这些都是片段或者完整的结果展示。对于初学或者开发经验较少的同学们&#xff0c;可能不知先从那里入手进行第一步的开发。下面解析下构建微信…

上位机工作感想-2024年工作总结和来年计划

随着工作年限的增增长&#xff0c;发现自己越来越不喜欢在博客里面写一些掺杂自己感想的东西了&#xff0c;或许是逐渐被工作逼得“成熟”了吧。2024年&#xff0c;学到了很多东西&#xff0c;做了很多项目&#xff0c;也帮别人解决了很多问题&#xff0c;唯独没有涨工资。来这…

hydra破解密码

hydra九头蛇是常用的密码破解工具 1、破解centos ssh密码 hydra -l root -P password.txt ssh://192.168.1.107:2222 hydra -l root -P password.txt -s 2222 192.168.1.107 ssh2、破解ftp hydra -l allen -P e:\aa.txt ftp://127.0.0.1 hydra -l allen -P e:\aa.txt ftp:…