Thanks to visit codestin.com
Credit goes to github.com

Skip to content

tianuc/ParticleEffectProfiler

 
 

Repository files navigation

996.icu

ParticleEffectProfiler

Unity 特效性能分析工具(来自UWA公众号的安利
2020-8-26:很荣幸此工具已被UWA集成,有购买UWA服务的在UWA里使用效果会更舒适(UWA已支持批量检测粒子特效性能

inspector

简介:

该分析工具,主要是把特效的几个重要指标:内存、DrawCall、粒子数量、overdraw等数据显示在scene上,方便美术直接查看,并根据相关内容作出优化。
Image text

使用:

Image text
将场景中的相机对准好特效,选中要测试的特效(只能一个),右键--特效--测试,即会自动运行Unity,开始特效测试。(会自动添加ParticleEffectScript脚本,停止运行时脚本会自动删除,避免造成脚本污染)

ParticleEffectScript脚本:

会记录Overdraw、DrawCall、粒子数量这三个数据,并可以以折线图的形式展示。(建议的数值请根据自己项目情况进行修改)
折线图内一个点代表一帧,如果没有勾选循环,则默认会记录3秒的数据,一秒30帧,会记录90个点。
可以修改特效运行时间而修改打点的长度。 如果是循环特效,请暂停后,勾选循环,数据就会不断记录。

Image text

无法自动剔除(automic culling):

Image text
当特效出现这个提示时候,自动剔除会关闭。 一般Unity在特效超出屏幕范围的时候,就会剔除此特效,但由于特效的制作过程中,会使用一些非线性的运算,导致Unity无法实时获取到粒子的位置,这就导致即使特效超出屏幕了Unity也会继续更新,无法对其自动剔除。(Unity的文档说明)

Image text

当游戏中特效多的时候这也是很影响性能的一个点,所以在面板统一显示方便查看。

但这里的还不够全面,有部分自动裁剪的无法判断,因为有部分属性无法访问,有兴趣的可以反编译UnityEditor.dll,搜索UpdateCullingSupportedString这个函数进行了解,希望有想到其他解决办法的小伙伴可以在这里贡献下代码。

摄像机:

进行测试特效的时候,会修改摄像机的shader, 显示成类似Scene视图的Overdraw模式。 特效的位置最好是正好全覆盖屏幕,不要太近,也不要太远(如果启用了Mipmap,太远有效像素会变少,导致平均Overdraw也少计算)。

支持:

Unity5.x Unity2017.x Unity2019.x Unity2021.x ✨ 新增支持 Unity2022.x ✨ 新增支持

🆕 Unity 2021-2022 升级特性

✨ 新特性

  • 完全兼容Unity 2021.x和2022.x
  • 现代化粒子统计方法 - 使用最新的公开API替代反射调用
  • 改进的内存统计 - 更准确的纹理内存计算,包含备用估算方案
  • 增强的错误处理 - 更好的异常处理和降级方案
  • 新的兼容性测试工具 - 一键验证所有功能在当前Unity版本中的兼容性

🔧 技术改进

  • API现代化: 使用EditorApplication.playModeStateChanged替代废弃的playmodeStateChanged
  • 事件系统升级: 支持新的PrefabUtility事件系统
  • 版本特定优化: 针对不同Unity版本使用最优的API调用方式
  • 向后兼容: 保持对旧版本Unity的完整支持

🧪 测试工具

使用菜单 ParticleEffectProfiler > 兼容性测试 > 运行所有测试 来验证当前Unity版本的兼容性。

📝 更新日志

v2.0.0 (2025-08-21) - Unity 2021-2022 兼容性升级

  • 新增支持Unity 2021.x和2022.x版本
  • API现代化: 替换废弃的EditorApplication和PrefabUtility API
  • 粒子统计改进: 使用现代化方法替代反射调用,提高准确性和性能
  • 内存统计增强: 改进纹理内存计算,添加备用估算方案
  • 错误处理优化: 增加异常处理和降级方案,提高稳定性
  • 兼容性测试工具: 新增一键测试工具验证功能完整性
  • 向后兼容: 保持对Unity 5.x-2019.x的完整支持

v1.0.0 (原版本)

  • 支持Unity 5.x, 2017.x, 2019.x
  • 基础粒子特效性能分析功能

License

This library is under the MIT License.

感谢 狂飙建议

About

Unity 特效性能分析工具

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 85.4%
  • PowerShell 7.3%
  • ShaderLab 4.4%
  • Batchfile 2.9%