新增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

相关推荐
ZC跨境爬虫1 天前
3D地球卫星轨道可视化平台开发 Day15(添加卫星系列模糊搜索功能)
前端·数据库·3d·交互·数据可视化
kobesdu2 天前
开源3D激光SLAM算法的异同点、优劣势与适配场景总结
算法·3d·机器人·ros
ZC跨境爬虫2 天前
3D 地球卫星轨道可视化平台开发 Day13(卫星可视化交互优化+丝滑悬停聚焦)
前端·算法·3d·json·交互
ZC跨境爬虫2 天前
3D地球卫星轨道可视化平台开发 Day14(彻底移除多余阴影)
前端·javascript·3d·信息可视化·json
ZC跨境爬虫2 天前
3D 地球卫星轨道可视化平台开发 Day12(解决初始相位拥挤问题,实现卫星均匀散开渲染)
前端·javascript·算法·3d·json
m0_743106462 天前
【浙大&南洋理工最新综述】Feed-Forward 3D Scene Modeling(四)
深度学习·算法·计算机视觉·3d·几何学
三毛的二哥2 天前
BEV:典型BEV算法总结
人工智能·算法·计算机视觉·3d
ZC跨境爬虫2 天前
3D 地球卫星轨道可视化平台开发 Day7(AI异步加速+卫星系列精简+AI Agent自动评论)
前端·人工智能·3d·html·json
ZC跨境爬虫2 天前
3D 地球卫星轨道可视化平台开发 Day8(分步渲染200颗卫星+ 前端分页控制)
前端·python·3d·重构·html
沙振宇2 天前
【Web】使用Vue3+PlayCanvas开发3D游戏(十二)渲染PCD点云可视化模型
3d·vue3·点云·pcd