PlayCanvas React
@playcanvas/react 将 PlayCanvas 带入 React 生态,以熟悉的组件模式和 ECS 架构声明式构建交互三维应用。它是对引擎的轻量封装,同时提供开箱即用的 React 开发能力。
工作原理
ECS 与 React 声明式思想相契合:创建实体、添加组件并加载资源,即可构建场景,无需反复处理底层初始化。
下面展示加载模型、渲染并创建环绕摄像机:
export const Lambo = () => {
// Load an asset
const { asset: model } = useModel('/assets/lambo.glb');
// If the asset is not loaded, return null
if (!model) return null;
return <>
{/* create and position a camera entity */}
<Entity name='camera' position={[4, 1, 4]}>
{/* Add a camera component */}
<Camera clearColor='#090707' fov={28} />
{/* Add an orbit controls component */}
<OrbitControls zoomRange={[3, 6]} pitchRange={[-90, -5]}/>
</Entity>
{/* render the asset */}
<Render type='asset' asset={model}/>
</>
}
完整引擎能力与 React 用法
可以访问完整 PlayCanvas 引擎,无需额外第三方库。引擎能做到的内容,React 版本也能做到。
此外还提供专为 React 设计的功能:
- 资源加载:支持 Suspense,精细控制获取时机和方式。
- 指针事件:熟悉的点击、拖动和手势冒泡,可在任意实体监听。
- 物理:按需加载物理引擎,与 React 生命周期配合。
- Hooks:便捷访问引擎事件、材质和资源状态。
入门
按入门指南创建首个项目。
也可通过 StackBlitz 模板快速启动。
示例
可以先体验以下示例:

