在过去的一年里,我一直在从零开始建立一个全新的事件系统,因为我对UnityEvents的限制和性能问题感到疲惫。像方法或组件重命名时引用破坏、方法支持有限、参数限制以及特别是运行时反射的重负载等问题一直让人感到沮丧。我花了大量时间研究UnityEvents内部,诚实地说...其背后的架构仍然有很大的改进空间。因此,我开始建立一个专注于解决这些具体问题的替代品,从头开始。经过数百个小时的工作,这个系统演变成一个解决这些问题的核心。完全了解一个系统的架构而不是围绕其限制工作,变化是巨大的。目前,这个系统在原始执行速度上比默认的UnityEvents快了200%,在生成GC分配上为0,并达到原始委托调用速度的90%。此外,它支持UnityEvents难以处理的问题: 重命名组件和方法不破坏引用 调用任何方法,无论返回类型* 支持任意参数数量和参数类型如果某种原因需要调用10+参数的方法,你绝对可以做到,而且仍然比通过UnityEvents调用无参数方法要快得多。这个工具仍在开发中,但一旦它准备好,我会分享更多的细节、基准测试和技术分解。仍在打磨并推动它进一步的发展,直到发布。那么,暂时回归厨房。祝你健康,持续进步 🫡
我建立了一个事件系统,摧毁了UnityEvents:零GC,参数无限,接近委托运行速度。
评论 (0)