微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用A框架在相机视图中生成实体而不嵌套

如何解决使用A框架在相机视图中生成实体而不嵌套

如何在不将其嵌套为子节点的情况下直接在相机视图中生成实体?

在某些情况下,即使相机移动到特定的VR设备(例如硬纸板),我都试图在用户面前生成立方体,这些立方体保持其绝对位置。

一个常用的嵌套示例:

['2020-11-10 11:43:36 -0500','2020-11-10 11:38:12 -0500',None,'2020-11-10 11:37:37 -0500','2020-11-10 11:35:56 -0500','2020-11-10 11:34:53 -0500','2020-11-10 11:16:19 -0500','2020-11-10 11:13:32 -0500','2020-11-10 11:12:55 -0500','2020-11-10 11:04:01 -0500','2020-11-10 11:00:25 -0500','2020-11-10 10:52:45 -0500','2020-11-10 10:51:07 -0500','2020-11-10 10:49:43 -0500','2020-11-10 10:45:27 -0500','2020-11-10 10:45:01 -0500','2020-11-10 10:40:28 -0500','2020-11-10 10:35:38 -0500','2020-11-10 10:29:40 -0500','2020-11-10 10:28:35 -0500','2020-11-10 10:25:52 -0500','2020-11-10 10:25:31 -0500','2020-11-10 10:22:57 -0500','2020-11-10 10:20:58 -0500','2020-11-10 10:18:00 -0500','2020-11-10 10:15:18 -0500','2020-11-10 10:11:18 -0500','2020-11-10 10:04:29 -0500','2020-11-10 10:03:10 -0500','2020-11-10 10:02:43 -0500','2020-11-10 10:01:56 -0500','2020-11-10 10:01:42 -0500','2020-11-10 10:00:48 -0500','2020-11-10 09:58:09 -0500','2020-11-10 09:57:17 -0500','2020-11-10 09:56:11 -0500','2020-11-10 09:55:39 -0500','2020-11-10 09:54:42 -0500','2020-11-10 09:50:00 -0500','2020-11-10 09:47:51 -0500','2020-11-10 09:47:29 -0500','2020-11-10 09:47:13 -0500','2020-11-10 09:46:59 -0500','2020-11-10 09:46:12 -0500','2020-11-10 09:40:10 -0500','2020-11-10 09:37:15 -0500','2020-11-10 09:37:00 -0500','2020-11-10 09:35:46 -0500','2020-11-10 09:34:25 -0500','2020-11-10 09:31:43 -0500','2020-11-10 09:29:51 -0500','2020-11-10 09:27:39 -0500','2020-11-10 09:27:24 -0500','2020-11-10 09:21:19 -0500','2020-11-10 09:19:07 -0500','2020-11-10 09:18:40 -0500','2020-11-10 09:17:57 -0500','2020-11-10 09:17:53 -0500','2020-11-10 09:16:24 -0500','2020-11-10 09:15:46 -0500']

认摄像机视图的普通按钮示例为:

<a-camera position="0 1.6 0">
    <a-Box position="0 0.5 -1"></a-Box> <!-- Unclickable button on cardboard -->
</a-camera>

上面的代码是简化版本,不包含按钮交互,因为它们与问题无关。

解决方法

如果要将“屏幕坐标”转换为场景“ 3D世界坐标”-three.js可以帮助:

// x,y are screen coordinates,but rescaled to <-1 : 1>
var position = new THREE.Vector3( x,y,-1 ).unproject( camera );

x,y必须介于-1到1之间,因此您必须重新调整位置:

x = ((positionOnScreen - screenWidth/2) / screenWidth/2)

就像我做了here(“ foo”组件,红色框,尽管我必须沿着计算出的方向移动它一样。)


另一方面,如果您正在执行 UI ,那么,如果您仅创建响应式 HTML 覆盖。如果是“ VR UI”,则尝试在摄像机前面创建一个“菜单区域”,而不是一个固定菜单。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。