首页 > 解决方案 > 如何在 A-FRAME 中创建一个函数来仅更改 Z 位置,保持 Y a Z 对象的原始值?

问题描述

如何单击按钮并转换/放置所有对象/与相机相同的距离“z”,保持它们的相对位置“x”和“y”

我想单击一个按钮并独立于 Z 显示内容,独立于到相机的距离显示它们,保持它们的原始值和不同的值 X 和 Y 原始位置。

我打算使用 javascript 将对象缩放到距离相机较近的位置,并可视化所有对象,允许相同的读取,即使是更远的对象

A-FRAME 中的 javascript 解决方案是什么,有人可以举例说明一个可行的解决方案吗?

提前致谢

米格尔·努内斯

标签: javascriptpositionaframe

解决方案


在世界空间中获得所需的 z pos:

var distance = 5;
var absCameraPos = new THREE.Vector3(0, 0, -distance);
cameraEl.getObject3D('camera').getWorldPosition(absCameraPos);

将对象放在那个世界 Z 上。类似于:

var tempVec3 = new THREE.Vector3().copy(absCameraPos);
someObjectEl.worldToLocal(tempVec3);
someObjectEl.position.z = tempVec3.z;

推荐阅读