codecamp

three.js FlyControls

FlyControls 启用了一种类似于数字内容创建工具(例如Blender)中飞行模式的导航方式。 你可以在3D空间中任意变换摄像机,并且无任何限制(例如,专注于一个特定的目标)。

例子

misc / controls / fly

构造函数

FlyControls( object : Camera, domElement : HTMLDOMElement )

object: 被控制的摄像机。

domElement: 用于事件监听的HTML元素。

创建一个新的 FlyControls 实例。

事件

change

当相机已被控件转换时触发。

属性

.autoForward : Boolean

若该值设为true,初始变换后,摄像机将自动向前移动(且不会停止)。默认为false。

.domElement : HTMLDOMElement

该 HTMLDOMElement 用于监听鼠标/触摸事件,该属性必须在构造函数中传入。在此处改变它将不会设置新的事件监听。

.dragToLook : Boolean

若该值设为true,你将只能通过执行拖拽交互来环视四周。默认为false。

.movementSpeed : Number

移动速度,默认为1。

.object : Camera

被控制的摄像机。

.rollSpeed : Number

旋转速度。默认为0.005。

方法

.dispose () : undefined

若不再需要该控制器,则应当调用此函数。

.update ( delta : Number ) : undefined

delta: 时间增量值。

更新控制器,常被用在动画循环中。

源代码

examples/jsm/controls/FlyControls.js


three.js FirstPersonControls
three.js OrbitControls
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

参考

核心 / BufferAttributes

渲染器 / WebXR

开发者参考

WebGL渲染器

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }