THREEJS 笔记4 控制器篇

threeJS 支持多种控制器,每个控制都必须加载对应的控制器插件后才能使用。控制器不仅能使用鼠标移动镜头,还能通过按键进行操控。

但是控制器要生效必须在renderer中使用代码更新才能使用。

OrbitControls 轨道控制器

以舞台中心为中点,左右拖动屏幕会让镜头围绕着中心点旋转,镜头会之中看着中心点。

// 声明轨道控制器
controlsfly = new THREE.OrbitControls(camera, renderer.domElement);
controlsfly.enableDamping = true; // an animation loop is required when either //damping or auto-rotation are enabled
controlsfly.dampingFactor = 0.25;
controlsfly.screenSpacePanning = false;

// 距离中心点最小距离和最大距离
controls.minDistance = 50;
controlsfly.maxDistance = 100

// 视角的最大仰角和俯角
controlsfly.minPolarAngle = Math.PI / 12;
controlsfly.maxPolarAngle = Math.PI / 2.5;

// 自动旋转和速度
controls.autoRotate = true;
controlsfly.autoRotateSpeed = 0.5

controls.maxPolarAngle = Math.PI;

renderer中代码

var delta = clock.getDelta();
controls.update(delta); //更新时间,所以控制器需要是全局,至少是可被外部函数调用

飞行控制器

像第一人称射击游戏一样通过晃动鼠标移动镜头。asdw也能进行操作。

flyControls = new THREE.FlyControls(camera);
flyControls.movementSpeed = 25;
flyControls.domElement = document.querySelector("#container");
flyControls.rollSpeed = Math.PI / 24;

renderer中代码

var delta = clock.getDelta();
flyControls.update(delta); //更新时间,所以控制器需要是全局,至少是可被外部函数调用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 15,203评论 1 180
  • 烟雨至大漠, 长思苏杭好, 塞北江南本不同。 远游须趁早。 虽是异乡人, 仍恋杭锦草, 志合道一君莫忘。 更待容颜老。
    内蒙古阿尘阅读 380评论 0 1
  • 画水彩一个月了,一直在跟着视频临摹,今天尝试自己画。 毫不意外是莲,我果然最喜欢莲花啦~ 不喜欢打线稿的我,乖乖的...
    鱼丸的尾巴阅读 293评论 0 0
  • 文|图|007同学 全目录|【和蛋儿的对话】 上一篇|和蛋儿的对话(44) 妈妈:“蛋儿,你刚才为什么说你不想看妈...
    007同学阅读 356评论 5 6
  • 亲子日记第90天1.6李欣怡妈妈 今天是一个激动人心的一天,因为我要和大宝还有我们兴安小学的家人们,去我盼...
    欣怡妈妈阅读 316评论 0 4

友情链接更多精彩内容