[LayaAir3]2d拖尾 首次调用拖尾的时候调用Laya.Scene.gc()后报错
2d拖尾 首次调用拖尾的时候调用Laya.Scene.gc()后报错
TypeError: Cannot read properties of null (reading '_mask')
at WebDefineDatas.addDefineDatas (WebDefineDatas.js:46:30)
at WebGLRenderelement2D._compileShader (WebGLRenderElement2D.js:42:24)
at WebGLRenderelement2D._prepare (WebGLRenderElement2D.js:48:14)
at WebglRenderContext2D.drawRenderElementList (WebGLRenderContext2D.js:119:21)
at RenderManager2D.render (RenderManager2D.js:87:17)
at Context.drawLeftData (Context.js:1146:35)
at RenderSprite._renderNode2D (RenderSprite.js:101:17)
at RenderSprite._transform (RenderSprite.js:196:19)
at _FlyObj.render (Sprite.js:587:48)
at RenderSprite.transform_drawNodes [as _fun] (LayaGLQuickRunner.js:132:21)
原因:
Trail2DRender.defaultTrail2DMaterial
材质在gc的时候会被gc掉。
解决方法:
需要在Trail2DShaderInit的init中
设置
static init() {
....
let mat = Laya.Trail2DRender.defaultTrail2DMaterial = new Laya.Material();
mat.lock = true;//加上这行 防止Laya.Scene.gc 释放掉
....
}
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
LayaAir大为
赞同来自: