three.js 编辑器的可视化交互能力
本文围绕three.js 编辑器(一款基于 Three.js 的 AI 驱动可视化低代码编辑器)展开。
- 🌐 在线预览: https://z2586300277.github.io/threejs-editor/
- 📦 GitHub 开源仓库: https://github.com/z2586300277/three-editor
- 📚 文档地址: https://z2586300277.github.io/three-editor/docs/dist
一个三维场景如果只看不交互,价值会大打折扣。three.js 编辑器提供了完整的可视化交互能力,让场景成为真正的信息入口。
鼠标与射线交互
编辑器内置射线检测机制,支持点击、悬停、框选等操作。用户可以为物体绑定事件,实现点击弹出详情、悬停高亮、双击聚焦等常见交互。
DOM 标签融合
通过 CSS2D 和 CSS3D 标签,用户可以把普通 HTML 元素贴到三维物体上。数据面板、提示框、表单、视频都可以自然融入 3D 场景,而不必用 WebGL 重新实现 UI。
视角与动画
three.js 编辑器支持保存相机视角、生成飞行动画,也可以结合 Theatre.js 时间线做镜头叙事。这让场景不仅能展示模型,还能像电影一样讲述空间故事。
状态驱动
结合外部数据,场景中的颜色、位置、动画、标签内容都可以实时变化。设备告警、交通流量、能耗指标等信息都能第一时间反映在三维画面中。
代码一瞥:绑定点击事件
three.js 编辑器封装了场景事件获取:
editor.getSceneEvent(event, (info) => {
const obj = info.rootObject if (obj) { obj.material.color.set(0xff0000) console.log('点击了:', obj.name) } })
配合 CSS2D 标签,就能做出数据弹窗、详情面板等交互。
交互让 three.js 编辑器从“三维看图工具”升级为“三维业务系统”。