这可能是一个非常基本的问题,但我还没有找到解决方案,它一直困扰着我。我想在相机的右下角显示指示世界坐标方向(x,y,z)的箭头,就像在 Maya 中所做的那样,以便在围绕对象旋转相机或在场景中移动时,您仍然可以识别世界坐标的方向。我尝试使用两种不同的方法来实现这一点,但到目前为止都没有奏效。
我有一个带有三个箭头的对象作为使用THREE.ArrowHelper
该类的子对象,我们XYZ
暂时将其称为。第一种方法是创建XYZ
场景的一个子节点,并为其提供一个根据相机当前位置计算的位置加上相机指向的方向的偏移量并进行调整,使其出现在我想要的角落而不是中心的屏幕。我几乎已经完成了这项工作,因为箭头保持正确的旋转,但位置有点有趣,我停止沿着这条路线走,因为在移动相机时真的很“紧张”。我不确定这是性能问题还是其他问题。
第二种方法是XYZ
使用局部位置偏移制作相机的子级,然后反转相机的旋转并应用反向旋转,XYZ
使其与世界坐标相匹配。我似乎使用这种方法很接近,但我可以得到正确的位置,或者正确的旋转,而不是两者。
我目前正在使用代码XYZ.matrix.extractRotation( camera.matrixWorldInverse );
为我提供正确的方向XYZ
,但它的定位已关闭。如果我使用XYZ.matrixWorld.extractRotation( camera.matrixWorldInverse );
,则位置保持正常(连接到相机),但方向不会改变。
如果有人有一个快速的技巧来让它工作,那将不胜感激。如果您有比我正在追求的更好的方法,那也会有所帮助。