Unity 计时器 Timer 实现

本文介绍了在Unity中如何构建和管理Timer,包括基本的计时、暂停和停止功能,支持三参数函数触发,但不涉及帧计时功能。主要讨论了Timer类的设计以及TimerManager的构建过程。
摘要由CSDN通过智能技术生成

这里写自定义目录标题

实现了基本的计时、暂停、停止功能
支持最多三参数函数触发
未实现帧计时功能

Timer类构建

using System;
using UnityEngine;

public class Timer
{
   
    public bool onOff;//计时器开关
    public float passTime;
    public int passCount;
    public int paramLevel;
    public float firstTime;
    public Tuple<int, float> loopSet;//循环配置元组
    public bool isScale;
   
    public dynamic action;
    public dynamic param_1;
    public dynamic param_2;
    public dynamic param_3;
   


    public void Update()
    {
   
        if (onOff)
        {
   
            if (isScale)
            {
   
                passTime += Time.deltaTime;
            }
            else
            {
   
                passTime += Time.unscaledDeltaTime;
            }

            if (loopSet == null)
            {
   
                if (passTime >= firstTime)
                {
   
                    Trigger();
                    TimerManeger.Instance.Stop(this);
                }
            }
            else if (loopSet.Item1 > 0)
            {
   
                if (passCount > 0)
                {
   
                    if (passTime >= loopSet.Item2)
                    {
   
                        Trigger();
                        passCount++;
                        passTime = 0f;
                    }
                }
                else
                {
   
                    if (passTime >= firstTime)
                    {
   
                        Trigger();
                        passCount++;
                        passTime = 0f;
                    }
                }

                if (
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值