一次实例化一些预制体会非常卡,第二次就不会

游戏进入后初次实例化一些3d预制体会非常卡,第二次就不会(没用到对象池),特别是在性能差一点的手机更明显,请问这个是什么原因造成的,是不是因为shader首次渲染需要编译?

我的也是这样,不知道什么原因。直接挂载在节点上,没问题,但是显示渲染的时候很卡,甚至卡死一小会

我也有遇到这问题, 似乎和shader无观, 使用相同的material, 第一次生成时照样会卡顿

我的预制体是要给2D相机使用的, 所以上面有挂UIMeshRenderer
经测试, 把UIMeshRenderer移除后就不卡顿了
你们的情况也是这样吗?

我就是单存的3d摄像机和一些3d预制体

audio、video、particle、label、刚体、材质、Mesh、animation、prefab、较耗性能的 API(比如射线检测之类的)等都是可能造成这些问题的。如果资源对象已经不能再优化了,那么在游戏的某个时机提前加载、提前编译、使用四叉树或八叉树算法空间换时间、压缩纹理、mesh lod、做一些缓存机制、利用 V8 的 JIT,都是不错的手段。当然还有更多。

这些不一定完全适用于你的项目,游戏优化一般都是定制性的,耐心 profile 分析瓶颈,总能找到一个性能平衡点的。

最后,引擎也在不断优化,近期确实我们收到一些反馈加载性能的问题,我们会尽可能在 3.6.x 版本中解决。

public static OptimizationPolicyThreshold = 3;

把引擎 cocos/core/assets/prefab.ts 中的这个变量改成 0 试试,可以在项目初始化的时候动态修改。不一定要定制引擎。

说到这个,编辑器里找不到 optimizationPolicy 选项, 请问是什么原因?

历史原因,Creator 3D 时代就把这个功能屏蔽了,后续我们会考虑加回来

3.5.2版本试了该方法,没有用

两个不同的3D模型其中一个面数较多的先载入之后,另一个面数较少的之后载入时会比较不那么卡顿一点

这问题3.6.1还是会发生只是卡顿没有那么严重但是还是会卡一下很明显

后台需要偷偷创建一个到对象池