新增3D桥接容器、预览运行时的场景视图,LayaAir3.4.0-beta.2再添重磅实用功能

张开发
2026/4/3 11:34:26 15 分钟阅读
新增3D桥接容器、预览运行时的场景视图,LayaAir3.4.0-beta.2再添重磅实用功能
作为 3.4.0 的 第 2 个 Beta 版本本次更新不仅修复了若干已知问题还围绕开发流程与使用体验进行了系统性优化。而在所有改动中最值得关注的是两个具有“工作流级别提升”的核心能力新增 3D 桥接容器Bridge3DSprite新增运行时可编辑的场景视图下面将对本次更新进行详细说明。新增3D桥接容器在没有 Bridge3DSprite 的历史版本中虽然可以通过 RenderTexture 的方式将 3D 内容嵌入到 2D 界面中——即先将 3D 渲染到 RenderTexture再作为 2D 精灵的纹理进行绘制——从效果上看也可以随 2D 节点进行位移、缩放与旋转。但需要明确的是这种方式本质上操作的是“渲染后的贴图结果”而不是 3D 内容本身。也就是说它更接近于对一张图像的变换而不是对真实 3D 节点的控制。因此这类方案依然停留在“渲染结果层面的融合”2D 与 3D 在层级结构、变换体系、裁剪规则以及交互逻辑上仍然是相对独立的系统。开发者需要手动维护两者之间的关系。Bridge3DSprite 正是为了解决这一问题而设计的。它将“3D 展示区域”抽象为一个标准的 2D 节点使 3D 内容可以直接参与 2D 显示列表体系。从使用上看Bridge3DSprite 表现为一个普通的 Sprite可以参与父子层级、布局、位移、缩放、旋转、裁剪以及滤镜等完整的 2D 能力而在内部它维护了一棵专门用于承载 Sprite3D 的 3D 子树并统一接入引擎桥接的 Scene3D 进行渲染。开发者可以将其理解为一个“三层结构”外层是 2D Sprite中间是内部的 3D 容器底层是引擎的 3D 渲染流程。在实际使用时无需关注底层细节只需记住你操作的是 2D 节点你添加的是 Sprite3D所有 2D 变换都会自动同步到内部的 3D 内容。它的本质是把一棵 3D 子树嵌入到 2D 节点体系中从而让 UI 与 3D 内容在结构上真正统一。在使用时还需要注意几点Bridge3DSprite 只允许添加 Sprite3D 类型的子节点不能混入 2D 节点桥接节点内部的 Sprite3D 不会参与 2D 事件系统例如点击模型本身不会触发 2D 事件同时Bridge3DSprite 与 Sprite3D 一样不能直接添加到 Stage 上必须放置在 Scene 节点体系中使用。在实践中建议使用 2D API 控制整体布局、层级与位置等“宏观结构”使用 3D API 控制模型本身的旋转、动画与表现细节这种分工方式会更加清晰也更符合该组件的设计方式。新增预览运行时的场景视图在历史版本中当项目进入预览运行状态后场景视图是不可操作的。如果开发者希望借助场景面板上的各种快捷工具进行节点选择、变换、位置调整等必须先停止运行再进行修改。从本次版本开始在游戏运行期间场景视图也可以使用了并与预览运行视图保持同步开发者可以直接在运行状态下对场景进行查看与操作。例如可以在运行过程中选中节点拖拽对象位置观察其在运行逻辑下的变化也可以在不打断游戏执行的情况下快速定位布局异常与逻辑问题。这种方式大幅减少反复运行带来的时间消耗。需要注意的是当前版本中的运行时编辑主要用于调试目的。在运行过程中对节点所做的修改并不会自动保存到场景文件中。如果需要保留调整结果可以在属性面板中右键复制对应属性在停止运行后再粘贴回场景中。未来版本计划支持保存运行时编辑的数据因此建议将该功能用于问题定位与参数验证而不是在运行状态下进行大规模场景修改否则在退出运行后需要重新调整。优化内容在参数名校验方面本次版本将常用的 GLSL 内置函数名如 min、max、clamp、sin、cos、dot、normalize 等加入保留名检查列表。当命中这些名称时系统会自动添加u_前缀生成安全的 uniform 变量名从而避免命名冲突问题。在发布流程方面IDE 已支持 Native DCC2 的.ignore文件配置使开发者可以更灵活地控制发布资源范围减少无关文件进入构建结果。在资源处理方面运行时对材质资源的修改在停止运行后将自动保存降低了调试过程中的重复操作成本。在 Shader 预览方面新增了previewType声明支持例如指定previewType Plane后预览时会自动使用 Plane 模型展示材质效果使预览结果更加直观。其他版本内容可以前往官网中查看https://layaair.com/#/engineDownload结束语3.4.0-beta.2 并不是一次简单的功能叠加更新而是围绕“开发效率”与“工作流体验”的一次重要演进。Bridge3DSprite 解决了 2D 与 3D 融合的结构性问题让 2D 与 3D 内容可以用更加统一的方式协同工作而运行时场景视图的开放则打破了编辑态与运行态之间的边界让调试过程更加直观、高效。这两项能力的引入本质上是在减少“人为维护成本”让开发者可以把更多精力放在内容本身而不是工具与流程的限制之上。作为 Beta 版本我们也期待在实际项目中获得更多反馈以便在后续版本中进一步打磨与完善这些能力。END

更多文章