确认是引擎 bug。这是 TileMap 模块的默认材质在创建时没有正确保护,导致 destroyUnusedResources() 误将其当作无用资源销毁。
具体原因:TileSet.getDefalutMaterial() 创建的材质既没有设置 lock,引用计数也为 0(TileMap 渲染元素直接引用了材质的 shaderData,绕过了正常的引用计数机制)。所以调用 destroyUnusedResources() 时这个材质被销毁了,但渲染管线还在用它,下一帧就崩了。
跟 Tween 本身没有直接关系,只要场景里有 TileMapLayer 并调用 destroyUnusedResources(),这个材质就会被错误销毁。Tween 可能间接触发了某些资源的回收循环,使得问题更容易复现。
这个 bug 已定位并修复,后续版本会包含此修正。目前如果需要绕过,可以在使用 TileMap 的场景中避免调用 Laya.Resource.destroyUnusedResources(),或者在调用前手动给 TileSet 的材质加锁。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。