<Script/>
Script 以命令式方式为实体添加行为。
适合性能敏感的物理、动画和交互,绕过 React props 更新,直接接入引擎循环。也可复用编辑器项目已有脚本。
详情见脚本手册。
用法
传入继承引擎 Script 的类,组件将其实例挂到实体,其余 props 直接作为类属性。
import { Script } from '@playcanvas/react/components'
import { CameraControls } from 'playcanvas/scripts/esm/camera-controls.mjs'
return <Script script={CameraControls} />
此例添加每帧旋转的 SpinMe:
- 演示
- 代码
// ↑ imports hidden
// This class runs in the scope of the entity it's attached to
class SpinMe extends PcScript {
update(dt) {
this.entity.rotate(0, dt * this.speed, 0);
}
}
export const ScriptExample = () => {
const { speed } = useControls(vars);
return (
<Entity>
<Render type="box" castShadows receiveShadows />
<Script script={SpinMe} speed={speed} />
</Entity>
);
};
可自行创建,或使用已有引擎脚本。
提示
实用脚本库位于此处。
ESM 脚本结构详见脚本编程。
属性
| 名称 | 类型与说明 | 默认值 |
|---|---|---|
script | SubclassOf<Script>挂载到实体的 Script 类。 | - |