LayaAir 3D 场景文件解析:.lh 结构、异步资源时序与组件注册

📅 2026/8/14 5:46:17
LayaAir 3D 场景文件解析:.lh 结构、异步资源时序与组件注册
引言:粉色材质与静默丢组件的根源美术导出的 .lh 场景加载后节点全部创建成功,但材质全是粉色占位、脚本组件一个没执行——排查发现是异步资源未就绪时节点树已遍历完毕,依赖外部 .lmat/.lani 的属性全部丢失。官方工具链掩盖了这些时序细节,自定义导出或重组场景时它们会集中暴露。一、文件结构与类型识别1.1 场景树的 JSON 表达.lh 文件是描述场景树的 JSON,每个节点以type标识类型:{ "version": "1.0.0", "type": "Scene", "child": [ { "type": "Sprite3D", "name": "MainCamera", "props": { "transform": {}, "isMain": true }, "components": [], "child": [] } ] }内置类型包括 Scene、Sprite3D、MeshSprite3D、SkinnedMeshSprite3D、DirectionLight 等;自定义脚本节点的 type 是注册的类名。type 到构造函数的映射是解析的第一步,找不到映射即类型错误。1.2 props 的三类值语义props 字典的值按语义分三类,解析策略各不相同:简单值(数值、布尔、字符串):直接赋值;