SuperAPI AI 工具集

threejs-interaction

智能体与模型

查看项目

更新于 10-15 19:53

技能介绍

用途:处理 Three.js 场景中的直接 3D 输入、对象拾取、相机操作与选中状态。语义化 HTML 控件、键盘可访问性与焦点管理应交给 web-accessibility;游戏输入架构应交给 web-game-development。

主要能力:用 Raycaster 对可选对象做指针/触摸拾取;添加或修复相机控制、对象拖拽、变换手柄或 pointer lock;在 client、归一化设备、世界与屏幕坐标间转换;修复点击丢失、悬停状态过期、指针捕获问题或过多射线检测。

使用方式:先确定交互边界,获取画布 getBoundingClientRect(),不要把指针坐标对整窗口归一化;定义明确的可选集合或图层,不要直接遍历 scene.children。射线检测从真实画布出发,用画布矩形换算 pointer,再 setFromCamera 并 intersectObjects,将嵌套命中解析为语义根对象。相机控制按需求选择:环绕用 OrbitControls,第一人称用 PointerLockControls,地图平移约束用 MapControls,变换对象用 TransformControls,拖拽已知对象用 DragControls 或显式射线-平面逻辑。控件从已安装的 Three.js 插件路径导入,canvas/scene 卸载时 dispose,不要在多处渲染循环中更新控件。仅在需要悬停时才在 pointermove 上做射线检测;大场景先用图层、包围盒、粗筛或目标列表;在 pointerleave、丢失捕获、移除对象和场景销毁时清除悬停状态。验证需覆盖鼠标、触摸、键盘替代操作以及缩放/偏移后的画布,并测试空白点击、嵌套网格、遮挡对象与快速进出事件。

限制:资料未提供具体收费、平台、性能数据或安装命令;不要用射线拾取作为激活必要产品功能的唯一方式。