1)项目中Warmup耗时高该如何操作处理
2)如何在卸载资源后Untracked和Other的内存都回收
3)总Triangles的值是否包含了通过GPU Instancing画的三角形
4)有没有用Lua来修复虚幻引擎中对C++代码进行插桩Hook的方案
这是第432篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。
UWA社区主页:community.uwa4d.com
UWA QQ群:793972859
Rendering
Q:项目中Warmup的处理,是每次启动都必须操作吗?还是第一次进入游戏处理一次就好?
然后是不是也比较有必要给iOS分段Warmup?现在Warmup时间太久了。我们是Shader都在一个AssetBundle,做分段Warmup是不是需要拆AssetBundle?
A:第一次时间会比较长,有些信息会被保存在硬盘;第二次开始预热时间会降低,但还是必要的。
应该拆的是ShaderVariantCollection,Shader和SVC还是打在一个包,但是拆开的SVC可以分别在不同时机调用ShaderVariantCollection.WarmUp()。
感谢Faust@UWA问答社区提供了回答
Memory
Q:Untracked的内存增加了,导致总内存不变。再次加载这一块资源,Untracked内存又降低了,Other内存起来了内存还是不变。但是实际上是希望卸载资源后内存卸载的。
把手机放在后台一段时间后,再回到App,Untracked内存可能会降低到一个非常低的值,不清楚这个现象是Unity版本导致的还是Unity机制导致的,请问这合理吗?
A:一方面经验上认为Unity内存工具显示的Untracked内存量本身不可尽信;另一方面,引擎的资源卸载了一部分,但变化小或时间短,因而进程没有把内存还给系统而暂作预留,使得资源卸载和重新加载时没有导致总内存产生显著的变化,这种可能性是存在的。
感谢Faust@UWA问答社区提供了回答
Rendering
Q:请问Profiler-Rendering里统计的(Instancing)一行应该就是通过GPU Instancing画的物体的DrawCall和Triangles吧?下图中最上面这个总Triangles是否已经包含了通过GPU Instancing画的三角形呢?
A:测试开关对比了一下,是的,且已经被包含在总的里面了。
感谢Faust@UWA问答社区提供了回答
Script
Q:请问虚幻引擎中是否有成熟的方案,可以对C++代码进行插桩Hook,并在出现问题时通过Lua进行修复?
针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/682aa00c3d306f3e9d594ed8
封面图来源于网络
今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。