如何在三个 js 3d .dae 对象中添加按钮

Posted

技术标签:

【中文标题】如何在三个 js 3d .dae 对象中添加按钮【英文标题】:How to add a button in a three js 3d .dae object 【发布时间】:2019-11-03 14:03:33 【问题描述】:

我已导入一个 .dae 文件并将其添加到我的场景中。它托管在这里,因为我无法在 codepen 中托管:http://freelancer.ueuo.com/threejs/。

我想在摊位的前面添加一个按钮,例如“CLICK ME”(由 css 设计),然后当我单击该按钮时,我希望出现一个弹出窗口。我知道如何使弹出窗口出现。但我不知道如何在场景中添加按钮并使用光线投射器来检测它。请帮忙。

【问题讨论】:

【参考方案1】:

要添加按钮,您可以在摊位前定义 BoxGeometry(https://threejs.org/docs/index.html#api/en/geometries/BoxGeometry) 或通过此链接 (https://www.turbosquid.com/) 使用一些 3d 对象,并使用

将其放置在您的摊位前面
Object.position.set(x,y,z)

要使光线投射器能够跟踪您的对象,您可以像初始化一样

raycaster.setFromCamera( mouse, camera )

基本上,光线投射器的原点是您的相机,目标是鼠标。

现在来监听你可以使用的 3d 对象上的事件

intersects = raycaster.intersectObjects( button3dObject )

如果它与 button3dObject 相交并触发点击事件,那么您可以打开您的模态弹出窗口

raycaster使用方法参考:https://threejs.org/docs/index.html#api/en/core/Raycaster

【讨论】:

这个很有用,但是我想在css中设计按钮,然后添加到场景中!

以上是关于如何在三个 js 3d .dae 对象中添加按钮的主要内容,如果未能解决你的问题,请参考以下文章

三个 JS 1 场景 2 文件格式尚未工作

“dae” 3D 模型端在 iOS 应用程序中变得透明

在 Qt3D 中找不到适合 QUrl 的导入器插件 - .dae 对象

3D可以打开.dae文件吗?

ThreeJS 不显示 dae 3D 模型

在 ARKit 中进行动画时如何获取 3D 对象的当前位置?