[Unity]BuffDebuffSystem增益减益系统(1)
发布日期:2021-05-09 11:56:13 浏览次数:26 分类:精选文章

本文共 886 字,大约阅读时间需要 2 分钟。

技术讨论:游戏内 BUFF 优化方案

近期在项目中对游戏内 BUFF 机制进行了一番优化,现将改进方案分享如下:

  • BUFF 管理系统优化
  • 在 BuffManage.cs 中,我们引入了一个前置循环,用来统一管理和执行各个 BUFF 的效果。该循环根据传入参数 IsEffect 来决定是否执行特定的 BUFF 操作(如激活或移除)。每次循环都会遍历全部 BUFF 实例,并根据具体条件进行处理。

    1. BUFF 事件触发机制
    2. 为方便 players 获取详细信息,新增了 FailureBuff 和 EffectBuff 事件。这些事件将触发时发生在相关 BUFF 被激活或被移除之时。前者主要用于 BUFF 失效时的数据采集,后者则用于 BUFF 正常生效时的事件通知。

      1. 接口优化
      2. 为了提高系统扩展性,Buff.cs 中增加了接口定义。具体来说,Buff 接口引入了BuffType 和BuffLevel两个属性。前者用于区分不同类型的 BUFF(如攻击、防御、治疗等),后者则用于控制 BUFF 等级的限制。这对于新 BUFF 的增加和管理极为友好。

        1. 弹幕系统集成
        2. 为了提升 player 的互动体验,我们将 BUFF 的生效和移除信息登陆到游戏内弹幕系统中。这样,玩家不仅能够实时查看自己的 BUFF 状态,还能与其他 player 共享相关信息。

          1. 性能优化要点
            • 使用 singleton 模式减少BuffManage实例数量,提升系统性能
            • 增加缓存机制,避免重复遍历所有 BUFF 实例
            • 确保循环次数根据 BUFF 类型进行优化,不一概而论地执行一次循环
            • 最大化利用 Texture 对象缓存,减少 REZ 的开销

            这个过程中我们注意到以下改进空间:

            • 需要进一步优化.prefab文件的处理速度
            • 进一步分析不同的 BUFF 类型的执行频率,有酌情避免过频的循环
            • 考虑减少调试日志对性能的影响
            • 补充更多的测试用例,确保各个 BUFF 情况下的表现一致
            • 建议 team成员共同参与性能测试,及时发现问题

            以上是本次修复的主要内容,后续将持续跟进系统优化情况,并确保最优状态。

    上一篇:[Unity]string.Format的用法
    下一篇:[Unity][C#代码技巧]灵活运用VC的注释

    发表评论

    最新留言

    路过,博主的博客真漂亮。。
    [***.116.15.85]2025年04月28日 14时46分22秒