@depasquale/three-immersive-controls

中文文档
0.0.17发布于 2024/09/28MITTypeScriptES Module近 30 天下载 3.9万

Three.js 的相接( VR) 控制

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 选项
  4. 实例
  5. 来做

三.j. 隐形控制

  • Immersive (VR) 函数
    • 以 VR 控制器进行移动和旋转(用左拇指杆移动,用右拇指杆旋转)
    • 使用 VR 控制器选择对象( R)A 按钮或触发)
  • 浏览器窗口功能
    • 键盘的移动和旋转( WASD 和箭头键)
    • 使用鼠标选择对象

安装

npm install @depasquale/three-immersive-controls

使用量

import ImmersiveControls from '@depasquale/three-immersive-controls';

// Create the `camera`, `renderer`, and `scene` instances with Three.js
// ...

const controls = new ImmersiveControls(camera, renderer, scene, { /* options */ });

将此包含在渲染循环中 :

controls.update();

选项

  • initialPosition: THREE.Vector3
    • 玩家在现场的初始位置. 默认是 new THREE.Vector3(0, 1.6, 4)。 。 。 .
  • lookAt: THREE.Vector3
    • 玩家最初方向的点。 (尚未执行。 )
  • floor: number | false
    • number (默认为 0: 设置玩家无法通过下层的y位置(简单解决碰撞探测而不是导航).
    • false:没有设定玩家沿y轴移动的限制.
  • gravity: true | false
    • true (默认) : 玩家的移动被限制在x和z轴上,而y的位置仍然位于 floor 设置.
    • false:玩家也可以沿着y轴(飞行模式)垂直移动.
  • moveSpeed: { keyboard: number, vr: number }
    • 玩家收到键盘或VR控制器输入时通过场景移动的速度. 默认是 { vr: 2.5, keyboard: 5 }。 。 。 .
  • rotateSpeed: number
    • 收到键盘或VR控制器输入时玩家旋转的速度. 默认是 1。 。 。 .
  • tumble: true | false
    • 允许玩家在y轴之外再在x轴上旋转. 默认是 false。 。 。 .
  • showControllerModel: true | false
    • 以浸入模式显示 VR 控制器 。 默认是 true。 。 。 .
  • showEnterVRButton: true | false
    • 在 DOM 中添加一个按钮,允许用户在此功能被支持时进入浸入模式. 默认是 true。 。 。 .
  • showExitVRButton: true | false
    • 在现场玩家面前显示一个按钮,允许用户退出浸润模式. 默认是 true。 。 。 .
  • vrControls: true | false
    • 激活活化(VR)控制. 默认是 true。 。 。 .
  • keyboardControls: true | false
    • 激活键盘控制器 。 默认是 true。 。 。 .
  • mouseControls: true | false
    • 激活鼠标控制器 。 默认是 true. (使用鼠标输入的运动尚未执行,但使用鼠标进行对象选择。)
  • showFps: true | false
    • 显示 Stats 指示器在 DOM 中,并在现场的玩家面前监视性能. 默认是 false。 。 。 .

实例

报告提供了实例 examples 目录。 要在浏览器中本地尝试, 请运行 :

npm run examples

或者试试看 这里。 。 。 .

来做

  • 添加与导航相撞的探测
  • 使用多种 VR 设备的测试( 目前仅使用 Oculus Quest 2 测试)
  • 处理只有一个 VR 控制器的情况
  • 为触摸屏设备添加控制
  • 在现场更好地重新定位"Exit VR"按钮
  • 可能的其他特征
    • 远程传送
    • 旋转和移动时的盲人
    • 用鼠标输入移动
    • 手迹追踪

版本与发布记录

@depasquale/three-immersive-controls 共发布 17 个版本,首次发布于 2022/03/06;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.17latest2024/09/282 年前
0.0.162024/09/272 年前
0.0.152023/11/063 年前
0.0.142022/09/224 年前
0.0.132022/09/214 年前
0.0.122022/08/034 年前

关于 @depasquale/three-immersive-controls 的常见问题

@depasquale/three-immersive-controls 是什么?

Three.js 的相接( VR) 控制

如何安装 @depasquale/three-immersive-controls?

在项目目录运行 npm install @depasquale/three-immersive-controls,或使用 pnpm add / yarn add / bun add。

@depasquale/three-immersive-controls 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@depasquale/three-immersive-controls 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@depasquale/three-immersive-controls 可以商用吗?

@depasquale/three-immersive-controls 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@depasquale/three-immersive-controls 的下载量有多少?

根据 npm 官方下载统计,@depasquale/three-immersive-controls 在 2026/10/12 – 2026/11/10 这 30 天内被下载 38,940 次,日均约 1,298 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@depasquale/three-immersive-controls 还在维护吗?

最新版本 0.0.17 发布于 2024/09/28(2 年前);至今共发布 17 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/03/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。