You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ThreeJS中如何实现相机的横向侧移操作

ThreeJS 相机横向侧移方向向量计算方法

横向移动的方向向量和相机朝向、相机上方向两两垂直,可以通过两个向量的叉乘直接计算得到,实现代码如下:

// 获取相机世界朝向(和你实现前进功能的代码一致)
const facingDir = this.camera.getWorldDirection(new THREE.Vector3())
// 计算相机向右的方向向量:朝向叉乘相机上方向,结果归一化保证移动速度恒定
const rightDir = new THREE.Vector3().crossVectors(facingDir, this.camera.up).normalize()

// 向右移动1单位
this.camera.position.addScaledVector(rightDir, 1)
// 向左移动1单位
this.camera.position.addScaledVector(rightDir, -1)

注意事项

  • 叉乘顺序不要颠倒,如果顺序反过来得到的就是向左的方向向量,调整后续缩放系数的正负也可以正常使用
  • 计算得到的方向向量一定要做归一化处理,避免相机旋转后方向向量长度变化,导致移动速度忽快忽慢
  • 代码直接复用相机自身的up属性,不需要硬编码Y轴为向上方向,适配修改过上方向的自定义相机配置

内容的提问来源于stack exchange,提问作者pgalle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:06:01