three.js - 如何在三个 js 3d .dae 对象中添加按钮
问题描述
我已导入一个 .dae 文件并将其添加到我的场景中。它托管在这里,因为我无法在 codepen 中托管:http: //freelancer.ueuo.com/threejs/。
我想在摊位的前面添加一个按钮,例如“点击我”(由 css 设计),然后当我点击按钮时,我希望出现一个弹出窗口。我知道如何使弹出窗口出现。但我不知道如何在场景中添加按钮并使用光线投射器来检测它。请帮忙。
解决方案
要添加按钮,您可以在您的摊位前定义 BoxGeometry(https://threejs.org/docs/index.html#api/en/geometries/BoxGeometry)或通过此链接使用一些 3d 对象(https:// www.turbosquid.com/)并使用
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
推荐阅读
- python - pandas: How to search by a list of values and return in the same order?
- c - 打印菜单功能选择后继续打印
- java - 如何在 bat 文件的帮助下从 java 程序启动/停止 tomcat 服务?
- python - 如果我启动一个烧瓶应用程序,它显示两个进程正在运行
- angular - How can I use ViewChildren to get multiple native elements using template variables?
- c++ - C++ Armadillo: arrays of indices from 2D-matrix
- linux - 如何验证传递的参数、值和参数之间的依赖关系?
- java - Error creating bean with name 'entityManagerFactory'; nested exception is HibernateException: Missing table
- postgresql - Concatenating to a positional parameter in Postgres
- google-bigquery - BigQuery 的 MySQL 条件组