--- title: OrbitControls 轨道控制器 description: 如何使用 OrbitControls 轨道控制器与场景进行交互。 author: alvarosabu thumbnail: /recipes/orbit-controls.png difficulty: 1 --- # OrbitControls 轨道控制器 [轨道控制器(OrbitControls)](https://threejs.org/docs/index.html#examples/zh/controls/OrbitControls)是一种摄像机控制器,可让您围绕目标运行。这是探索场景的绝佳方式。 然而,它并不是 ThreeJS 的核心部分。因此,要使用它,您需要从 `three/addons/controls/OrbitControls` 模块导入它。 这会产生一个问题,因为 **TresJS** 仅会为 ThreeJS 核心对象自动创建组件目录,以便您可以将它们作为组件使用。 幸运的是,**TresJS** 提供了一种扩展组件目录的方法。您可以使用核心库中的 `extend` 方法来实现。 有关扩展您的 TresJS 目录的更多信息,请参考 [扩展](/zh/advanced/extending.md) 部分。 ## 使用轨道控制器 要使用 `OrbitControls` 你需要从 `three/addons/controls/OrbitControls` 模块导入它。 ```js import { OrbitControls } from 'three/addons/controls/OrbitControls' ``` 接下来,你需要使用 `extend` 方法扩展组件目录。 ```js import { extend } from '@tresjs/core' import { OrbitControls } from 'three/addons/controls/OrbitControls' extend({ OrbitControls }) ``` 现在,你可以在你的场景中使用 `TresOrbitControls` 组件了。 ```vue ``` 由于 [轨道控制器(OrbitControls)](https://threejs.org/docs/index.html#examples/zh/controls/OrbitControls) 需要相机和渲染器的引用,因此你需要将它们作为参数传递。 你可以使用 [useTres](/zh/api/composables#usetres) 组合式函数获取相机和渲染器。 ```ts import { useTres } from '@tresjs/core' const { camera, renderer } = useTres() ``` 因此,最终代码如下所示: ```vue ``` ## 使用 `cientos` 的 OrbitControls 现在进入精彩的部分了! ✨ `cientos` 包提供了一个名为 `` 的组件,它是 [`three-stdlib`](https://github.com/pmndrs/three-stdlib) 模块中 `OrbitControls` 的封装。 最棒的是? 您不需要扩展目录或传递任何参数。 它直接可用!💯 ```vue ```