跳到主要内容

Hooks

Hooks 负责复杂生命周期管理,以 React 习惯提供简洁接口。

可用 hooks​

核心​

资源加载​

事件与动画​

材质与物理​

使用模式​

多数 hooks 遵循统一模式:

import { useApp, useAsset } from '@playcanvas/react/hooks'

function MyComponent() {
const app = useApp()
const { asset, loading, error } = useAsset('model.glb', 'container')

if (loading) return <div>Loading...</div>
if (error) return <div>Error: {error}</div>

return <Container asset={asset} />
}

上下文要求​

许多 hooks 需要特定上下文:

  • useApp 必须位于 Application 内。
  • useParent 必须位于 Entity 内。
  • usePhysics 需要应用启用物理。

TypeScript 支持​

提供完整类型与 IntelliSense,自动从引擎类型推断。

// Fully typed with PlayCanvas types
const app = useApp() // Application
const entity = useParent() // Entity
const { asset } = useAsset('texture.jpg', 'texture') // Asset | null

使用建议​

  1. 使用资源 hook 时检查加载状态。
  2. 妥善处理错误。
  3. 按用途选择合适 hook。
  4. 订阅清理由 hooks 自动完成。
  5. 遵循 React 规则,仅在组件顶层调用。