管理您的 Cookie 设置。您可以在下方启用或禁用不同种类的 Cookie。详情请查看我们的隐私政策

Wonderbricks 现在开源了

Wonderbricks 最初是一个生产项目:是一个完整的 WebXR 体验项目,我们可以在别人询问“一个大型 Wonderland Engine 项目实际看起来如何?”时展示和指引。

今天,我们与合作伙伴 Novelab 一起在 GitHub 上发布了完整的源代码和素材。

项目仓库:https://github.com/WonderlandEngine/wonderbricks

你将获得什么 

  • 完整的项目源代码 (MIT)
  • 创意素材 (CC-BY)
  • 一个用于 VR 和 MR 项目的参考 (包括支持在支持设备上的手势追踪)

其目标是让开发者更容易地逆向工程大型项目的结构,并了解 Wonderland Engine 的各个功能如何结合在一起。

项目结构 

Wonderbricks 是一个标准的 Wonderland Engine 项目,采用了一些在原型发展成交付应用时可扩展的惯例。

  • js/ —— 应用代码(游戏玩法、用户界面、音频、实用工具)
  • models/ —— 3D 模型
  • textures/ —— 纹理和图集
  • shaders/ —— 自定义着色器
  • static/ —— 运行时服务的资源(字体、音乐、音效)
  • raw/ —— 原始音频资源(处理之前)
  • WonderBricks.wlp —— Wonderland 编辑器项目文件

入口点 

js/index.js 是 Wonderland Engine 项目生成的入口点。首先打开它值得一试,因为它能清楚地展示应用的组成:

  • 组件导入和注册(根据编辑器中使用的内容生成)
  • 运行时选项(根据编辑器中的设置生成)
  • 主场景的加载

如果您想了解“应用程序从哪里开始?”,这是您要查看的文件。

游戏玩法、用户界面、音频 

js/ 下的代码按职责划分:

  • js/gameplay/ 包含构建循环(方块放置、网格/对齐、交互、预制件、粒子)
  • js/ui/ 包含世界内用户界面(安装在手臂上的面板、选择器、按钮)
  • js/sound/ 包含一个小型的音效系统和动作特定发射器
  • js/utils/ 包含小型帮助工具(标签、材质帮助工具等)

这种划分不是强制性的,但在多个系统并行演变时可以保持项目的可读性。

着色器 

shaders/ 包含自定义片段着色器,展示了一些面向编辑器的特性:

  • 着色器功能切换
  • 仅请求所需的输入
  • 声明 Material 结构,以便编辑器能为自定义着色器中的材质属性生成用户界面

如果您正在构建基于 Wonderland Engine 的自定义渲染,这是一个很好的参考。

构建项目 

Wonderbricks 通过编辑器来完全构建。可以通过检出项目(或从 GitHub 下载 ZIP 文件)来开始:

1git clone https://github.com/WonderlandEngine/wonderbricks.git

然后点击顶部的绿色箭头按钮在浏览器中启动它。

要在 Meta Quest 上运行:

  1. 启用 Meta Quest 的开发者模式
  2. 使用 USB 线连接它
  3. 在 Wonderland 编辑器中在顶部的设备下拉菜单选择 Meta Quest
  4. 点击绿色箭头按钮将浏览器启动到 Quest 上(端口转发已为您设置好。)

为什么开源 

一个完善的参考项目可以解答文档无法完全覆盖的问题:

  • 如何构建一个更大的项目
  • 如何避免将游戏逻辑、用户界面和资源合并成一个单一的整体
  • 一个“准备发货”的 Wonderland Engine 设置从头到尾是什么样的
  • 如何在不阅读文档的情况下学习引擎(毕竟,这是学习的最有趣的方式。)

如果您正在评估 Wonderland Engine,这将为您提供一些具体的东西供检查。如果您已经在使用它,这是一组可以复制(或忽略)的模式,具体取决于它是否适合您的项目。

注意 

如果您基于此仓库构建了某些内容并希望分享,请在我们的 Discord 社区中发布:

https://discord.wonderlandengine.com

Last Update: February 7, 2026

保持更新。