Laya shader预编译 解决粒子特效卡顿
使用unity导入粒子特效,在Laya中第一次播放会出现卡顿现象,查了下相关资料发现是特效的shader没有进行预编译导致的,根据Laya官网实现如下代码
先整体运行跑一边项目执行 getShaderData() 保存输出的文件,以后每次启动执行预编译compileShader(data)就可以避免第一播放粒子特效时候的卡顿,当然预编译时还是会卡顿的。参考链接:https://ldc2.layabox.com/doc/?nav=zh-ts-4-22-7.
/**
* 获取shade配置文件 需要开启 Shader3D.debugMode = true
* 详见:https://ldc2.layabox.com/doc/?nav=zh-ts-4-22-7
*/
public static getShaderData() {
let shaderObj = {
};
let arr = new Array();
for (let i = 0; i < Laya.Shader3D.debugShaderVariantCollection.variantCount; i++) {
let shadervariant: Laya.ShaderVariant = Laya.Shader3D.debugShaderVariantCollection.getByIndex(i);
let shaderName: string = shadervariant.shader.name