[LayaAirIDE 2.0]关于3d粒子的问题

unity里面做好的一个并不复杂的粒子,在使用的时候去给它instantinte出来,然后同时添加到场景里面,这样的操作往往会造成卡帧,用分析工具看是getProgramParameter函数耗时比较多。想问一下大家是怎么处理粒子的,有没有什么思路。

1587145044692.jpg

 
已邀请:

Recovery

赞同来自: 徐小宇

这是因为shader没有预处理导致的,预处理简单流程如下:
1.设置Laya.Shader3D.debugMode=true
2.运行游戏,按F12,播放特效记录绿色字样里的name sub pass defines
3.代码里在特效创建之前使用Laya.Shader3D.compileShaderByDefineNames(shader.name,shader.sub,shader.pass,shader.defines)预处理
4.编译并运行游戏

余生

赞同来自:

粒子实例化出来,先拿到屏幕外播放一遍。然后再去操作,游戏中就不会卡了

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作