mcpField
B
build-app

build-app

github.com/playcanvas开发31313 次安装1 周前更新
代码仓库

关于 build-app

面向使用 Engine 的开发者,涵盖直接调用、React 和 Web Components 开发方式。内容包括应用生命周期、启动、更新、输入和 UI 管理。

主要功能

  1. 01检查项目入口与对应参考
  2. 02配置应用输入和画布尺寸
  3. 03管理更新时序与应用状态
  4. 04根据应用状态渲染 UI
  5. 05明确资源生命周期的归属

适用场景

  1. 01初始化 Engine 应用
  2. 02接入输入并调整画布尺寸
  3. 03实现依赖时间的应用逻辑
  4. 04组织 UI 与资源清理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/playcanvas/skills --skill build-app

安装后在 Claude Code 中输入/build-app确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
direct-engine.md
react.md
web-components.md

详细介绍

构建 Engine 应用

阅读 package.json 和入口点,保留负责生命周期的表面,并且只阅读对应的参考文档:direct Engine、React 或 Web Components。根据导入内容和标记选择,而不是根据依赖项。

引导

  • 输入是选择启用的。除非传入 new Application(canvas, { ... }),否则 app.keyboard、mouse、touch、gamepads 和 elementInput 都保持为 null;UI 按钮需要 new ElementInput(canvas)。
  • Engine 不会添加窗口大小调整监听器;请在自己的处理程序中调用 app.resizeCanvas()。
  • graphicsDevice.maxPixelRatio 默认为 1。只有在目标设备能承受其帧预算时才提高该值,且最高不超过 window.devicePixelRatio;随后调用 app.resizeCanvas(),并通过 canvas.width / canvas.clientWidth 确认。
  • Ammo 通过 WasmModule 加载之前,刚体不会活动。使用 find-examples 复制 physics/falling-shapes 示例中的加载器。
  • devtools 默认为 true,因此调试工具可以找到应用(inspect-runtime)。只有在隐藏生产构建时才将其设为 false。

更新循环

  • dt 已由 app.maxDeltaTime(0.1 s)限制;调整该值,而不要手动限制。 app.timeScale 会缩放它,设为 0 会暂停缩放后的时间。
  • 将应用状态明确地放在一个位置管理;根据 dt 推进依赖时间的逻辑,并通过启动时使用的同一套设置进行重置。

UI

  • 根据应用状态渲染 UI;绝不要将真实数据源保存在 DOM 或 UI 元素中。
  • 使用 DOM 或 React 覆盖层,或者采用 user-interface 示例中的方式使用 Engine screen 和 element 组件。
  • 将未使用的元素设为 enabled = false 来隐藏;不透明度为 0 的元素仍会绘制。

所有权

  • 由一个所有者统一负责应用创建、资源、实体、更新回调和拆除。
  • 优先使用该表面的声明式原语。将每个实体和每帧的行为放入 Engine Script 中。
  • 在创建外部事件和资源的生命周期中将其移除。

评论

支持 Markdown