---
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
```