首页 > 其他分享 >Unity中实现倒计时结束后干一些事情

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

时间:2025-01-15 22:57:19浏览次数:3  
标签:结束 void CountdownManage 按下 倒计时 Unity time using

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

 

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

标签:结束,void,CountdownManage,按下,倒计时,Unity,time,using
From: https://blog.csdn.net/2301_76156790/article/details/145169389

相关文章

  • 线程每次iodelay监控及D状态开始和结束监控并做堆栈记录
    一、背景在之前的博客 获取进程或线程级别的iodelay的方法_io验证延时链-CSDN博客里,我们讲到了获取进程或线程的iodelay的方法,但是博客里讲到的获取iodelay的值是一个累积值,并不能准确的捕获到每个单次的iodelay具体是多少。这篇博客里是为了监控每个单次的iodelay,除了监控i......
  • Unity QFrameWork--Architecture
    ArchitectureArchitecture代码usingSystem;usingSystem.Collections.Generic;namespaceQFramework{publicinterfaceIArchitecture{///<summary>///注册系统///</summary>voidRegisterSystem<T>(T......
  • 实现网页倒计时跳转的JavaScript代码
    在网页开发中,倒计时跳转功能常用于广告页面、活动倒计时或页面跳转提示等场景。下面是一个简单的JavaScript实现,用于在指定时间后自动跳转到另一个页面。该代码会在页面上显示倒计时,并在倒计时结束后跳转到指定的URL。代码实现<spanclass="time"></span><script>var......
  • C语言代码题:有评委对选手进行打分,分数为整数,接收数据为-1的时候结束,去掉一个最高分,去
    思路:    1、定义数组进行接收分数    2、用循环求最高分,最低分,总值    3、求平均分,输出#include<stdio.h>intmain(void){inti=0,val=0;inta[100]={0};doublemin=0,max=0,num=0,avg=0;//给数组赋值......
  • UnityAPI:利器CullingGroup
    https://docs.unity3d.com/Manual/CullingGroupAPI.html这个API非常强大,可以快速的实现自定义的Occlusionculling和Lod系统,并且性能表现极佳。简要原理CullingGroup为了性能考虑,把所有的物体模拟为球形,传入摄像机后,检测球形与相机视窗的交集,通过onStateChanged通知应用......
  • 写个还剩下多少天过年的倒计时
    在前端开发中,实现一个过年倒计时通常涉及到JavaScript来计算当前日期与新年日期之间的差异。以下是一个简单的HTML和JavaScript示例,用于显示距离新年还有多少天的倒计时:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content=&qu......
  • 一篇文章搞懂unity编辑器中Event的rawType, type和GetTypeForControl
    简介Event.rawType就是初始的type,可以通过Event.Use()将rawType修改为EventType.Used。Event.type是经过GUIClip过滤的rawType,如果事件触发时,鼠标位置位于当前GUIClip中,返回rawType,如果鼠标不在当前GUIClip中,则设置为EventType.IgnoreEvent.GetTypeForControl相对于Event.type......
  • 【Unity 编辑器插件】Stranger Lands - StampIT! 旨在简化和加速游戏场景构建中的地形
    StrangerLands-StampIT!是一款Unity插件,专为游戏开发者设计,旨在简化和加速游戏场景构建中的地形、地图和环境资源布局。它特别适用于需要大规模、快速生成或修改地形的项目,如开放世界、冒险类游戏、沙盒游戏等。通过该插件,开发者可以通过简单的操作快速“印刷”出各种地形......
  • 信息系统项目管理师2025年考试关键知识点梳理-第8章 项目整合管理-制定项目管理计划、
    1、制定项目管理计划制订项目管理计划是定义、准备和协调项目计划的所有组成部分,并把它们整合为一份综合项目管理计划的过程。本过程的主要作用:生成一份综合文件,用于确定所有项目工作的基础及其执行方式。项目管理计划确定项目的执行、监控和收尾方式,其内容会根据项目所在......
  • 【unity】学习制作2D横板冒险游戏-2-
    配置新输入系统升级输入系统打开设置更新安装新系统给PLayer添加Input组件创建一个input文件,在如图路径下里面有一些默认的功能生成代码编写人物控制代码脚本路径如下新的输入系统的启动代码如何控制呢?通过检测输入系统中的坐标来控制左右移动Fixupdate......