需求背景
工作中需要使用 threejs
制作一个第一人称的 viewer
,在使用 threejs
的 flyControls
时发现一些和需求不一样的情景。
主要的问题就是拖拽查看时相机在拖拽后会导致上方向的变化从而导致视角变化很奇怪,所以需要改造一下原本的 FlyControl
。
既然要改造那就肯定要先解析 FlyControls
的源码了
FlyControls的功能
FlyControls
实现了一个类似第一人称视角通过 WASD
来调整相机前进的基本控制器。
例子:https://threejs.org/examples/#misc_controls_fly
文档:https://threejs.org/docs/index.html?q=fly#examples/zh/controls/FlyControls
可以看到上图 WASD
控制移动,RF
控制上下移动,QE
旋转相机,方向键上下左右可以控制视角。
也可以用鼠标偏移位置自动旋转视角
源码分析属性声明
地址 :
https://github.c