跳到主要内容

交互

场景完成后,可根据需求选择不同交互方式。

指针事件​

给 Entity 添加指针处理器,即可响应用户输入。

提示

事件会沿 React 树冒泡,因此可在父实体统一处理。

例如,创建点击变色球体:

实体支持以下与 DOM 指针 API 接近的事件:

  • onPointerUp
  • onPointerDown
  • onPointerOver
  • onPointerOut
  • onClick

Script 组件​

Script 可将任意 ESM PlayCanvas 脚本挂到实体,适合交互、动画和 React 渲染循环之外的行为。

将脚本类传给 Script 的 script prop:

脚本是继承 Script 的 ES 模块,可复用已有类、自行编写或使用引擎脚本库。

提示

逐帧动画通常用 Script 比重渲染 React 树更高效,但可能覆盖 Entity props。

详情见脚本文档。

应用事件​

useAppEvent 以更贴近 React 的方式订阅内置或自定义事件,提供相应回调签名和 TypeScript 支持。

下例监听 update 旋转胶囊体:

全部事件及回调详见 Application API。

也可使用 app.fire 触发自己的事件。

import { useAppEvent } from '@playcanvas/react/hooks'

const MyComponent = () => {
useAppEvent('myEvent', (message) => {
console.log('My event fired.', message);
});
}

app.fire('myEvent', 'Hello, world!');

后续步骤​

继续学习物理和材质。