未验证 提交 512162a6 编写于 作者: M Mr.doob 提交者: GitHub

Merge pull request #19580 from WestLangley/dev_pointer_lock

PointerLockControls: add min/max polar angle
......@@ -87,6 +87,16 @@
Whether or not the controls are locked.
</p>
<h3>[property:Float maxPolarAngle]</h3>
<p>
Camera pitch, upper limit. Range is 0 to Math.PI radians. Default is Math.PI.
</p>
<h3>[property:Float minPolarAngle]</h3>
<p>
Camera pitch, lower limit. Range is 0 to Math.PI radians. Default is 0.
</p>
<h2>Methods</h2>
<p>See the base [page:EventDispatcher] class for common methods.</p>
......
......@@ -87,6 +87,16 @@
Whether or not the controls are locked.
</p>
<h3>[property:Float maxPolarAngle]</h3>
<p>
Camera pitch, upper limit. Range is 0 to Math.PI radians. Default is Math.PI.
</p>
<h3>[property:Float minPolarAngle]</h3>
<p>
Camera pitch, lower limit. Range is 0 to Math.PI radians. Default is 0.
</p>
<h2>Methods</h2>
<p>See the base [page:EventDispatcher] class for common methods.</p>
......
......@@ -21,6 +21,11 @@ var PointerLockControls = function ( camera, domElement ) {
this.domElement = domElement;
this.isLocked = false;
// Set to constrain the pitch of the camera
// Range is 0 to Math.PI radians
this.minPolarAngle = 0; // radians
this.maxPolarAngle = Math.PI; // radians
//
// internals
//
......@@ -49,7 +54,7 @@ var PointerLockControls = function ( camera, domElement ) {
euler.y -= movementX * 0.002;
euler.x -= movementY * 0.002;
euler.x = Math.max( - PI_2, Math.min( PI_2, euler.x ) );
euler.x = Math.max( PI_2 - scope.maxPolarAngle, Math.min( PI_2 - scope.minPolarAngle, euler.x ) );
camera.quaternion.setFromEuler( euler );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册