UWA本地资源检测功能说明

UWA本地资源检测功能说明

UWA本地资源检测是针对静态工程检测的自动化流水线,旨在帮助研发团队快速发现自身开发过程中存在的各种资源、代码和设置问题。以静态资源和代码分析为切入点,在项目早期可接入,秉持及时发现、及时解决的原则,大幅度节省项目研发的时间和人力成本。

为了帮助大家更快地上手,我们整理了这份完整版资源检测说明书,本文的结构分为三个部分:核心功能介绍、使用方法/优秀实践案例、知识点拓展【加餐】

当前版本【v1.0.7562.40944】支持的核心功能如下图所示,我们会在下文进行逐一说明:

另外,不少朋友关注的一点就是它的收费模式,小编这里告知大家:免费的,随便用,虽然小编也不知道这么好用的东西老板为什么不收费。


一、核心功能介绍

1、主流资源的检测

报告内将详细反馈主流资源(网格、纹理、音频、材质、Animation、Shader、Video、Prefab)的使用情况,包括检测资源的属性、是否合理、处理的优先级情况等一览无遗。

同时,我们已经支持批量检测粒子特效性能,自动扫描特效,一次运行,全部检测。(详情见UWA已支持批量检测粒子特效性能),请还未升级至最新版本的童鞋尽快下载最新版本,体验完整功能。

2、场景、Editor及代码扫描检测

同样的,针对场景、Editor以及代码设置,我们也设定了相关的检测规则。

3、Lua代码扫描检测

UWA本地资源检测现已支持Lua代码扫描检测,来帮助开发团队方便地检测Lua代码不规范的问题,提高代码质量,从而提高开发的效率。详情请戳

4、贴心的Tips功能

结合UWA结合多年的优化经验,我们在数据检测面板中提供了对应的分析建议,所有的检测结果都有对应的说明注释,大大降低了用户的使用门槛,也帮助开发者及时作出合理的优化策略。

5、行业阈值和自定义阈值

尚处于研发早期阶段的团队常常关心一个问题:这个数据在行业水平中是怎么样,我们是不是超标了?或者我们还有多大的发挥空间?为了帮助大家更科学地树立研发规范,我们提供了10套官方阈值,对应10种不同的游戏类型。如下图,用户可以在切换阈值设定的下拉菜单中看到我们推荐的阈值选项。

这些阈值的来源为所有提交至UWA官网的大数据,我们会定期更新每种参数的阈值,以保证这些数据的时效性。

同时,研发团队也可以点击报告的右上角自定义阈值,现支持阈值方案多套保存的功能,便于大家制作更加精细的定制化需求。

6、自定义规则

大家都希望能为项目量身定制一套资源规范的规则,因此我们也为大家开放了自定义规则API,大家可自行开发适合自身项目的检测规则。(传送门:规则我说了算!自定义规则重磅上线

7、历史数据对比与报告数据导出

报告支持对同一个项目下的任意两份报告进行全量数据对比。以“优化后通过的资源”、“历史检测通过,当前失败的资源”,“当前检测删除的资源”这三个维度,来方便研发团队进行直观的比较。我们还提供了资源对比功能,从这几张表格内可以看到是否发生了误添加/删资源的情况。


同时,报告支持对线上报告的数据导出,也可以针对单个规则进行数据导出,方便开发人员对数据进行相应的应用与处理。


二、使用方法

为方便大家能快速上手,我们制作了一个简易的【奶奶级】教程,绝不让大家踩坑,传送门:本地资源检测之民间文档 | 仅需10分钟,我又上手了一个新技能!

SDK的下载链接在https://www.uwa4d.com/#download,找到Pipeline SDK下载即可。已经在用的小伙伴也要记得及时更新喔,不然就无法体验最新功能啦。

该服务自上线以来,已经受到不少游戏开团队的积极反馈,更有一位资深用户分享了他们完整的实践流程,从接入到分析排查到复测再到总结复盘,详尽又落地,可作为大家实践参考的攻略帖:优化不再秃头,这个优秀实践我们一点一点说


三、知识点拓展加餐【持续更新】

在今年的UWA DAY 2020的《轻量级流水线结合方案助力打造高品质游戏》一讲中,我们罗列了在UWA本地资源检测上检测未通过的触发规则。

无论是大家在开发时的疏忽,还是相关知识点的缺失,这些问题的积累最终都会反映到项目的性能表现上。为此,我们将这些规则曝光出来,并且以一个个知识点的形式逐一解读,从而让大家更深刻地明白,它们是如何对项目的整体性能情况产生影响的。

我们力图以浅显易懂的表达,让职场萌新或优化萌新深入理解。
本文会持续更新,欢迎加入收藏,定期翻阅充电。

1)尺寸过大的纹理——97%的项目中招
2)面片数过大的网格——95%的项目中招
3)使用了纯色纹理——92%的项目中招

4)包含空纹理采样的材质——91%的项目中招
5)未开启OptimizeGameObjects的Animator组件——87%的项目中招
6)包含Scale曲线的动画片段组件——86%的项目中招

7)精度过高的动画片段——86%的项目中招
8)包含无用纹理采样的材质——79%的项目中招
9)粒子数上限超过30的粒子系统——79%的项目中招
10)引用纹理尺寸大于256的粒子系统——78%的项目中招

11)未使用Streaming加载的长音频
12)未使用PCM格式的音频
13)双声道的音频
14)尺寸过大的视频资源

15)包含Color属性的网格
16)未开启OptimizeMesh选项的网格
17) 包含Tangent属性的网格
18) 包含uv3或uv4属性的网格

19) 包含Normal属性的网格
20) 开启Read/Write选项的网格
21) 蒙皮网格骨骼数过大

22) 包含无效透明通道的纹理
23) 过滤模式为Trilinear的纹理
24) 开启Read/Write选项的纹理

25)开启Mipmap选项的Sprite纹理
26)使用非压缩格式的纹理
27)Wrap模式为Repeat的纹理