网易首页 > 网易号 > 正文 申请入驻

Unity技术分享(58):粒子系统优化、同屏HUD过多...

0
分享至

我们将从日常技术交流中精选5个开发相关的问题,建议阅读时间15分钟,认真读完必有收获。如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。
UWA QQ群:465082844
UWA 问答社区:answer.uwa4d.com

粒子系统

Q1:我们项目中有大量的特效,一个特效Prefab可能包含100-200个GameObject,每个GameObject上都挂有一个粒子系统,但是实际上很多特效只有延时和坐标旋转之类的参数的区别。我看了Prefab文件后发现每个粒子系统分别记录了各自的信息,从而导致整体文件很大,内存占用也比较大。请问是否有优化的方法?

如果开发的是一个手游项目,那么一个Prefab下含有100-200个粒子系统是非常不足取的,主要会造成以下几种问题:
  1. 1. 同时播放100个以上的ParticleSystem,其ParticleSystem.Update本身的CPU占用会很高。下图为一款游戏在华为6Plus上的表现。可以看到Active Particle数量还没有达到100,其Update耗时就已经占到了5ms;


  2. 2. ParticleSystem.ScheduleGeometryJobs开销会很高。其耗时主要体现在渲染模块中的Culling阶段,与粒子系统的数量相关,场景中Active粒子系统的数量越多,其开销越高;
  3. 3. 子线程中的渲染压力较大。Unity5.3版本以后,粒子系统的渲染虽然在主线程中占用很小,但并不意味它没有耗时,其耗时在渲染线程中,当渲染线程压力过大时,主线程同样会出现等待(Gfx.WaitForPresent),因此同样可能对帧率产生影响;
  4. 4. GPU的渲染压力较高。同屏中渲染的粒子系统越多,其屏幕每帧的填充率越高,从而更加容易造成设备的发热;
  5. 5. 内存压力较高。如果一个Prefab上有100-200个粒子系统,并且如果场景中有10个以上这样的Prefab存在,那么其内存占用将在10~25MB内存区间内。就目前而言,粒子系统仍然是以Clone的形式存在,所以虽然粒子系统可能仅仅是某些参数不同,但其仍然是多个不同的粒子系统。因此,我们在UWA报告中会显示粒子系统在项目运行时的具体显示数量,以方便研发团队对粒子系统进行关注。如下图所示,一般来说,每帧中粒子系统的数量建议在400以下。


综上所述,就目前的硬件环境来看,如果是研发一款手游项目,那么一个特效中包含100~200个粒子系统是非常不合适的。当然,如果是PC项目,那么就另当别论了。我们目前并没有针对PC项目进行过深入研究,欢迎其他PC端开发的朋友来进行分享。

此问答来自于UWA 问答社区:
https://answer.uwa4d.com/question/58ddedeb0d9eacab7dc86653
如您对该问题仍有疑问,可以转至社区进行进一步提问。

NGUI

Q2:我们游戏中用到NGUI的HUD,单位主要是一个进度条和一个倒计时文本(持续更新),同屏数量达600左右,单位本身在持续移动。现已将这些设置为独立Panel,且只有2个DrawCall(进度条所在图集和文本),但还是卡顿得很厉害,请问是否有优化的方法?

同屏600的数量确实已经非常高,目前该使用方式的瓶颈在于网格更新和合并开销,建议研发团队先从以下几个点进行优化:
  1. 1. 简化元素的几何:进度条中的元素尽量避免Sliced 模式(改Simple);倒计时部分如果使用了Outline或者Shadow,将其转为“图片字”;
  2. 2. 降低更新频率:如倒计时按“秒”统一更新;进度条按1%甚至5%的间隔更新一次;移动速度较慢时可以尝试隔帧更新位置等;
  3. 3. 拆分子UIPanel:尽可能将更新频率相同的UI元素放在一个UIPanel中,从而降低每次更新时涉及到的UI元素数量。具体的拆分数量,则可能要通过较多的测试来确定。需要说明的是,此处即使增加10到20个DrawCall,对渲染上的影响并不大。

此问答来自于UWA 问答社区:
https://answer.uwa4d.com/question/58dd38884e69b5ed22e68ada
如您对该问题仍有疑问,可以转至社区进行进一步提问。

动画系统

Q3:如下图,请问这几个参数的单位是什么?

Rotation Error使用角度(degree)作为单位。Position和Scale是距离偏差的百分比(曲线调节前后的距离偏差与某距离值之比,取决于Unity内部实现),取值范围1~100,但实际可以高于100,并有作用。
我们建议研发团队在调节该误差时,将调节前后的动画效果进行对比,使文件体积压缩得尽量小,同时使动画效果在视觉上偏差不会太大。

动画系统

Q4:如下图,这个ResampleCurves选项的作用,以及是否和对内存性能的影响?

ResampleCurves选项是在Unity 5.3版本后加入的,在之前的版本中是隐藏并且默认勾选的。该选项会改变Unity动画数据的存储方式。动画文件在导入到Unity之前,其关键帧的数据通常是以欧拉角(Euler format)的方式存储。在勾选该选项时导入,Unity会将欧拉角转换为四元数(Quaternion)表示,并且会生成逐帧的数据(不只是关键帧)。新生成的逐帧数据是为了解决四元数插值问题。关闭该选项会使动画文件保持欧拉角表示,但在应用于GameObject时仍会转换为四元数。
我们建议保持默认勾选该选项,只有当发现Unity中的动画播放效果与在动画编辑工具中的效果出现较大偏差时,尝试取消该选项,查看是否是该选项的原因导致动画偏差。我们在测试中发现该选项对运行性能影响并不明显。在内存方面,勾选该选项会使动画文件略微增加。

资源管理

Q5:我们美术作的人物动画,是不需要用到缩放的,于是我做了一个Scale Curve剔除。对比运行时数据如下:

剔除前:

剔除后:

可以看到Curves Count减少了很多,效果应该是有的,但是与此同时,我在编辑器里看这个Clip的内存占用反而相比剔除前增大了150%(之前是0.6MB,现在是1.5MB)。我反复测试,这个数据很准确,这是为什么呢?

附Scale曲线剔除的代码:

UWA使用研发团队提供的两个动画文件进行真机测试,结果如下:
  1. 1. 对于动画guanyu_anim, 去除Scale前内存占用9.8M,去除Scale后内存占用9.8M;
  2. 2. 对于动画suishi_taluo_anim,去除Scale前内存占用197.6K, 去除Scale后内存占用174.5K。
UWA并未复现问题中所述的内存增加的现象。在此,我们建议研发团队先确认下,截图是直接获取的数据(即Editor下的内存占用)还是连接了真机的内存数据。(注意:在Profiler中获取的Editor下的内存数据并不是在真机上的实际内存数据,并且相差较多。因此建议连接真机后再测一下,看看是否仍然内存增加。
同时,研发团队如果想在Editor中了解动画文件在真机内存中的占用,可以看Inspector里显示的容量,该数据与真机内存占用非常接近(虽然并不完全相同):


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站(answer.uwa4d.com)上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
官方技术QQ群:465082844(非水群,仅限技术交流)

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
如果当年输的是广东兴宁,你今天填籍贯会写什么?

如果当年输的是广东兴宁,你今天填籍贯会写什么?

智慧生活笔记
2026-05-25 01:53:42
53岁袁立突发重病!病床素颜照曝光,身处上海顶级医院治疗

53岁袁立突发重病!病床素颜照曝光,身处上海顶级医院治疗

行者聊官
2026-05-23 14:57:01
动用“榛树”“匕首”导弹,俄军投入多型精确武器空袭乌克兰致数十人伤亡

动用“榛树”“匕首”导弹,俄军投入多型精确武器空袭乌克兰致数十人伤亡

上观新闻
2026-05-25 03:51:10
她把一盆花变成几十盆,一分钱没花

她把一盆花变成几十盆,一分钱没花

云朵偷喝奶茶
2026-05-24 00:18:35
两性关系:55-65岁这十年,惜命最好的方式,不是锻炼,做好这6点

两性关系:55-65岁这十年,惜命最好的方式,不是锻炼,做好这6点

三农老历
2026-04-13 17:10:06
张雪机车声明:已要求侵权方立即召回、销毁所有图书,并公开致歉赔偿

张雪机车声明:已要求侵权方立即召回、销毁所有图书,并公开致歉赔偿

界面新闻
2026-05-25 07:29:39
CBA季后赛5大混子球员!赵睿赵继伟领衔:一老油条坑惨广东!

CBA季后赛5大混子球员!赵睿赵继伟领衔:一老油条坑惨广东!

篮球快餐车
2026-05-25 02:34:49
这次小米YU7不再神话了?现车销售,都没人买了?

这次小米YU7不再神话了?现车销售,都没人买了?

互联网.乱侃秀
2026-05-23 10:37:31
等了22年!阿森纳高举英超奖杯庆祝 44岁塔帅抹泪+被众将抛起致敬

等了22年!阿森纳高举英超奖杯庆祝 44岁塔帅抹泪+被众将抛起致敬

我爱英超
2026-05-25 07:26:56
拒绝热刺选择阿森纳的决定做对了吗?埃泽:我非常确定做对了

拒绝热刺选择阿森纳的决定做对了吗?埃泽:我非常确定做对了

懂球帝
2026-05-25 09:53:19
第8次“太空会师”!神舟二十三号航天员乘组顺利进驻“天宫”

第8次“太空会师”!神舟二十三号航天员乘组顺利进驻“天宫”

新京报
2026-05-25 07:24:11
海边的风景真美

海边的风景真美

蓝色海洋009
2026-05-24 22:43:44
中美谈妥,美联储新主席上台,对华立场不简单,黄金价格暴涨3倍

中美谈妥,美联储新主席上台,对华立场不简单,黄金价格暴涨3倍

影孖看世界
2026-05-24 21:12:45
反转了!耿同学从吉大出来后,短短几天判若两人,网友发帖引热议

反转了!耿同学从吉大出来后,短短几天判若两人,网友发帖引热议

火山詩话
2026-05-25 07:42:09
尴尬到抠脚!马刺球迷对着SGA狂嘘!!

尴尬到抠脚!马刺球迷对着SGA狂嘘!!

柚子说球
2026-05-25 08:07:02
纯中国血统芬兰国手萨拉新赛季12秒86开局 比中国赛季最佳快0.20秒

纯中国血统芬兰国手萨拉新赛季12秒86开局 比中国赛季最佳快0.20秒

劲爆体坛
2026-05-24 19:07:01
日经225指数涨幅扩大至0.62%报63730.23点,再创历史新高

日经225指数涨幅扩大至0.62%报63730.23点,再创历史新高

每日经济新闻
2026-05-25 08:10:10
33岁战神泪流满面!6万人高唱你永不独行 自宣下一站:遥远的地方

33岁战神泪流满面!6万人高唱你永不独行 自宣下一站:遥远的地方

风过乡
2026-05-25 07:38:15
纪实:浙江女教师突然失踪6年,13岁儿子凭借一个梦找到母亲

纪实:浙江女教师突然失踪6年,13岁儿子凭借一个梦找到母亲

红豆讲堂
2024-10-25 09:45:59
普京无功而返,谈20年的中蒙俄管道卡壳,中国要让俄明白一个道理

普京无功而返,谈20年的中蒙俄管道卡壳,中国要让俄明白一个道理

傲傲讲历史
2026-05-24 06:45:00
2026-05-25 10:36:49
侑虎科技UWA incentive-icons
侑虎科技UWA
游戏/VR性能优化平台
1577文章数 987关注度
往期回顾 全部

游戏要闻

疑因“太难”而被P社解约?史上最硬核的太空挖矿游戏

头条要闻

骑马造势的车企原董事长落马 2个月前曾公开出席活动

头条要闻

骑马造势的车企原董事长落马 2个月前曾公开出席活动

体育要闻

唐斯发牌,大头逆袭:骑士跌向残忍夏季

娱乐要闻

王鹤棣掉粉超20万!代言和作品遭抵制

财经要闻

退市!33年“A股不死鸟”落幕

科技要闻

神舟二十三号航天员乘组顺利进驻“天宫”

汽车要闻

国民家轿再上新 帝豪向上系列限时5.59万起

态度原创

房产
手机
家居
亲子
艺术

房产要闻

疯狂周末,海口楼市突然爆了!

手机要闻

果粉狂喜:iPhone配AirPods iOS 27更顺手

家居要闻

低调传承 温润沉静

亲子要闻

小叔子比老公小28岁,整天就知道粘着我

艺术要闻

张学良为蒋中正亲笔书写的挽联,行书大师总爱“偷偷”夹带草书?

无障碍浏览 进入关怀版