这是一个引擎 bug。
Light2DManager 内部创建的灯光 Mesh2D 没有增加引用计数(_addReference),导致 destroyUnusedResources() 把它们当作"未使用资源"给销毁了。销毁后 _indexBuffer 变成 null,下一帧渲染更新灯光 mesh 时就会报 Cannot read properties of null (reading 'indexCount')。
这个问题不限于灯光初始禁用再启用的场景,只要有 2D 灯光存在时调用 destroyUnusedResources() 都可能触发。
目前的处理方式:避免在有 2D 灯光的场景中调用 destroyUnusedResources(),或者把销毁资源的调用延迟到灯光不活跃的时机。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。