Unity 时间管理工具

本文介绍了在 Unity 开发中如何使用时间管理工具,通过一个单例类 TimeManager 实现计时器功能,用于处理倒计时和技能流程配置。TimeManager 包含存储委托的字典,Update 方法循环执行,倒计时结束或流程完成时自动清理。对于复杂的技能流程,如冲刺后攻击等,使用委托列表来管理,根据委托返回的 bool 值决定是否继续执行或结束流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        之前写了一个计时器,用一个单例 TimeManager 中的一个存储委托的字典,在Update反复执行实现,调用方法注册实现,倒计时为0时调用委托,同时从字典中移除,注销没有想到好方法,凑合着先用。

        这两天需要一个技能流程配置,我的技能可能会有冲刺后攻击,也可能只有冲刺,也可能只有攻击。如果分别在对象上写 if 各自管理流程,代码排版看着很难受,需要加很多标记变量。所以在 TimeManager 中新建一个存储委托的列表的字典,也是在 Update 中反复执行,调用方法注册,委托返回 bool,当为true时下一帧依旧执行当前委托,当为 false 的时候委托结束,删除当前委托,下一帧进入下一个委托。一个列表中的所有委托都执行结束之后,在字典中删除本条流程列表,一个流程就这样执行结束。

public class TimeManager : MonoSingleton<TimeManager>
{
    // 计时器事件字典
    private Dictionary<TimeEvent, float> m_CountDownDict = new Dictionary<TimeEvent, float>();

    private int processIndex = 0;
    private Dictionary<int, List<ProcessEvent>> m_ProcessDict = new Dictionary<int, List<ProcessEvent>>();

    public void Update()
    {
        CountDown();
        RunProcess();
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值