# [name]

해당 클래스는 [page:FlyControls] 의 대안적인 구현 방법입니다.

## 수입

[name] 는 애드온이며 명시적으로 가져와야 합니다. See [link:#manual/introduction/Installation Installation / Addons].

`import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js';`

## 예시

[example:webgl_geometry_terrain webgl / geometry / terrain ]

## 생성자

### [name]( [param:Camera object], [param:HTMLDOMElement domElement] )

[page:Camera object]: 제어 할 카메라 객체 입니다.

[page:HTMLDOMElement domElement]: 이벤트 리스너에 사용되는 HTML 엘리먼트입니다.

새로운 [name] 객체를 생성합니다.

## 속성

### [property:Boolean activeLook]

주위를 둘러 볼 수 있는지 설정합니다. 기본 값은 *true* 입니다.

### [property:Boolean autoForward]

카메라가 자동으로 앞으로 이동 할 수 있는지 설정합니다. 기본 값은 *false* 입니다.

### [property:Boolean constrainVertical]

[[page:.verticalMin], [page:verticalMax]]값을 수직으로 카메라를 고정할 수 있습니다. 기본 값은 *false* 입니다.

### [property:HTMLDOMElement domElement]

마우스 / 터치 이벤트를 수신하는 데 사용되는 HTMLDOMElement입니다. 이것은 생성자에 의해 설정되어야 합니다; 생성자를 통해 설정되지 않을 경우 새 이벤트 리스너에 설정되지 않습니다.

### [property:Boolean enabled]

컨트롤의 활성화 여부를 설정합니다. 기본 값은 *true* 입니다.

### [property:Number heightCoef]

y-컴포넌트가 [page:.heightMax]에 가까울 경우 카메라가 얼마만큼 빠르게 움직이는 지 설정 합니다. 기본 값은 *1* 입니다.

### [property:Number heightMax]

속도 조절에 사용되는 상단 카메라 높이를 설정합니다. 기본 값은 *1* 입니다.

### [property:Number heightMin]

속도 조절에 사용되는 하단 카메라 높이를 설정합니다. 기본 값은 *0* 입니다.

### [property:Boolean heightSpeed]

카메라의 높이가 이동 속도에 영향을 주는지 설정합니다. 기본 값은 *false* 입니다. 해당 속성을 사용하기 위해서는 [page:.heightCoef], [page:.heightMin] and [page:.heightMax]를 설정해야 합니다.

### [property:Boolean lookVertical]

세로 축을 기준으로 주위를 둘러 볼 수 있는지 설정합니다. 기본 값은 *true* 입니다.

### [property:Number lookSpeed]

카메라의 look around 속도를 설정합니다. 기본 값은 *0.005* 입니다.

### [property:Boolean mouseDragOn]

마우스를 눌러진 상태인지 나타냅니다. 해당 프로퍼티는 읽기 전용 입니다.

### [property:Number movementSpeed]

카메라의 이동속도를 설정합니다. 기본 값은 *1* 입니다.

### [property:Camera object]

제어 할 카메라 객체 입니다.

### [property:Number verticalMax]

수직으로 주위를 둘러볼 수 있는 상한 범위를 지정합니다. 0 부터 Math.PI.radians 의 범위를 가집니다. 기본 값은 *Math.PI* 입니다.

### [property:Number verticalMin]

수직으로 주위를 둘러볼 수 있는 하한 범위를 지정합니다. 0 부터 Math.PI.radians 의 범위를 가집니다. 기본 값은 *0* 입니다.

## 메소드

### [method:undefined dispose] ()

컨트롤이 더 이상 필요하지 않을 경우 호출해야 합니다.

### [method:undefined handleResize] ()

어플리케이션의 창 크기를 조절 하려면 호출해야 합니다.

### [method:FirstPersonControls lookAt]( [param:Vector3 vector] )
[method:FirstPersonControls lookAt]( [param:Float x], [param:Float y], [param:Float z] )

vector - 타겟 좌표를 설정합니다.

Optionally, x,y,z 컴포넌트는 특정 월드 좌표계 위치를 설정합니다.

카메라는 정의 된 타겟 좌표 쪽으로 가리키도록 합니다.

### [method:undefined update] ( [param:Number delta] )

[page:Number delta]: 변화할 시간 값 입니다.

컨트롤을 업데이트 합니다. 보통 애니메이션 루프에서 호출 됩니다.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/FirstPersonControls.js examples/jsm/controls/FirstPersonControls.js]