FirstPersonControls.html 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="list.js"></script>
  7. <script src="page.js"></script>
  8. <link type="text/css" rel="stylesheet" href="page.css" />
  9. </head>
  10. <body>
  11. <h1>第一人称控制器([name])</h1>
  12. <p class="desc">
  13. 该类是 [page:FlyControls] 的另一个实现。
  14. </p>
  15. <h2>例子</h2>
  16. <p>[example:webgl_geometry_terrain webgl / geometry / terrain ]</p>
  17. <h2>构造函数</h2>
  18. <h3>[name]( [param:Camera object], [param:HTMLDOMElement domElement] )</h3>
  19. <p>
  20. <p>
  21. [page:Camera object]: 被控制的摄像机。
  22. </p>
  23. <p>
  24. [page:HTMLDOMElement domElement]: 用于事件监听的HTML元素。
  25. </p>
  26. <p>
  27. 创建一个新的 [name] 实例。
  28. </p>
  29. </p>
  30. <h2>属性</h2>
  31. <h3>[property:Boolean activeLook]</h3>
  32. <p>
  33. 是否能够环视四周。默认为*true*。
  34. </p>
  35. <h3>[property:Boolean autoForward]</h3>
  36. <p>
  37. 摄像机是否自动向前移动。默认为*false*。
  38. </p>
  39. <h3>[property:Boolean constrainVertical]</h3>
  40. <p>
  41. 垂直环视是否约束在[[page:.verticalMin], [page:.verticalMax]]之间。默认值为*false*。
  42. </p>
  43. <h3>[property:HTMLDOMElement domElement]</h3>
  44. <p>
  45. 该 HTMLDOMElement 用于监听鼠标/触摸事件,该属性必须在构造函数中传入。在此处改变它将不会设置新的事件监听。
  46. </p>
  47. <h3>[property:Boolean enabled]</h3>
  48. <p>
  49. 是否启用控制器。默认为*true*。
  50. </p>
  51. <h3>[property:Number heightCoef]</h3>
  52. <p>
  53. Determines how much faster the camera moves when it's y-component is near [page:.heightMax]. Default is *1*.
  54. </p>
  55. <h3>[property:Number heightMax]</h3>
  56. <p>
  57. Upper camera height limit used for movement speed adjusment. Default is *1*.
  58. </p>
  59. <h3>[property:Number heightMin]</h3>
  60. <p>
  61. Lower camera height limit used for movement speed adjusment. Default is *0*.
  62. </p>
  63. <h3>[property:Boolean heightSpeed]</h3>
  64. <p>
  65. 摄像机的高度是否影响向前移动的速度。默认值为*false*。
  66. 使用属性 [page:.heightCoef]、 [page:.heightMin] 和 [page:.heightMax] 来进行配置。
  67. </p>
  68. <h3>[property:Boolean lookVertical]</h3>
  69. <p>
  70. 是否能够垂直环视。默认为*true*。
  71. </p>
  72. <h3>[property:Number lookSpeed]</h3>
  73. <p>
  74. 环视速度。默认为*0.005*。
  75. </p>
  76. <h3>[property:Boolean mouseDragOn]</h3>
  77. <p>
  78. 鼠标是否被按下。只读属性。
  79. </p>
  80. <h3>[property:Number movementSpeed]</h3>
  81. <p>
  82. 移动速度。默认为*1*。
  83. </p>
  84. <h3>[property:Camera object]</h3>
  85. <p>
  86. 被控制的摄像机。
  87. </p>
  88. <h3>[property:Number verticalMax]</h3>
  89. <p>
  90. 你能够垂直环视角度的上限。范围在 0 到 Math.PI 弧度之间。默认为*Math.PI*。
  91. </p>
  92. <h3>[property:Number verticalMin]</h3>
  93. <p>
  94. 你能够垂直环视角度的下限。范围在 0 到 Math.PI 弧度之间。默认为*0*。
  95. </p>
  96. <h2>方法</h2>
  97. <h3>[method:null dispose] ()</h3>
  98. <p>
  99. 若不再需要该控制器,则应当调用此函数。
  100. </p>
  101. <h3>[method:null handleResize] ()</h3>
  102. <p>
  103. 若应用程序窗口大小发生改变,则应当调用此函数。
  104. </p>
  105. <h3>[method:FirstPersonControls lookAt]( [param:Vector3 vector] )<br />
  106. [method:FirstPersonControls lookAt]( [param:Float x], [param:Float y], [param:Float z] )</h3>
  107. <p>
  108. <p>
  109. <p>
  110. vector - 一个表示目标位置的向量。
  111. </p>
  112. <p>
  113. 或者,世界空间位置的x、y、z分量。
  114. </p>
  115. </p>
  116. <p>
  117. 确保控制器将相机方向朝向到所传入的目标的位置。
  118. </p>
  119. </p>
  120. <h3>[method:null update] ( [param:Number delta] )</h3>
  121. <p>
  122. <p>
  123. [page:Number delta]: Time delta value.
  124. </p>
  125. <p>
  126. 更新控制器,常被用在动画循环中。
  127. </p>
  128. </p>
  129. <h2>源代码</h2>
  130. <p>
  131. [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/FirstPersonControls.js examples/jsm/controls/FirstPersonControls.js]
  132. </p>
  133. </body>
  134. </html>