用途:在从零编写 PlayCanvas 行为前,先检查已安装的 playcanvas 包是否已提供所需脚本或辅助模块,尽量复用官方代码,只补充真正缺失的部分。
主要能力:定位并列出引擎自带脚本;识别 CameraControls、FirstPersonController、ThirdPersonController、ShadowCatcher、ProceduralSky、Water、Grid,以及 XR 与 splat 脚本等常用项;区分 scripts/esm 下的脚本与 scripts/esm/parsers 中的资源处理类(后者不是脚本);提示 CameraFrame、Picker(getSelectionAsync)、TransformGizmo、OutlineRenderer、MiniStats、GltfExporter、UsdzExporter 等非脚本核心导出。
使用方式:脚本位于 scripts/esm/**,只能从该处导入。可用以下命令列出脚本(保持原样):
rg 'static scriptName =' node_modules/playcanvas/scripts/esm
| sed "s|.*/scripts/esm/||; s|:.static scriptName = ['"]| -> |; s|['"].||"
| sort
集成时阅读源码以确认导出、@attribute 属性、默认值与所需组件;用 find-examples 找到官方示例,并复制其依赖的资源、图层、场景设置与渲染配置;随后调整配置与扩展点。若没有可复用的,只实现缺失部分并说明缺失内容。渲染一帧后,若出现 console、shader 或资源缺失错误应视为失败。除另有要求,保留自带脚本的输入映射与阻尼,并用真实输入验证方向,而非凭记忆推断符号。分组属性更新的方式因接口而异;未修改的默认值应保留。只阅读与代码匹配的参考:直接使用 Engine、React 或 Web Components。
适用场景:集成 PlayCanvas 相机控制、角色控制、天空、水、阴影、网格、XR 与 splat 等现成行为时。限制:资料未提供具体版本要求、支持平台、收费或效果保证等细节,暂未提供。