hololens setParent position change camera lens

问题描述:

我正在使用Hololens Lens Toolkit Master。 问题是,当您设置镜头相机的SetParent时,镜头的镜头位置与父项的位置相同。hololens setParent position change camera lens

例如,如果A的位置是0,0,0和B的位置是0,0,4,那么A.SetParent(B.Transform)将使得A的位置为0,0,-4。

这在Unity编辑器上也是如此。

但是,如果建立在hololens和运行A.SetParent(B.Transform),A的位置将是0,0,4

我不知道为什么会这样......

我想0,0 ,-4 !!

一般来说主摄像头的父母是场景本身,你不能去高,所以家长是相机,除非你的相机内的另一个游戏对象。还要记住,对于Hololens来说,相机是其他所有相机所需移动的稳定位置,而不是相反。

更新:因此,hololens应用程序中的主摄像头就像第一人称射击游戏中的角色相机,但它不是移动其世界并且应用程序无法控制主摄像头的相机,您可以通过控制器或键盘来控制角色。这里的区别在于主摄像机是由hololens控制的,0,0,0,0是固定的主摄像机点并且永远不会改变,会发生的是,hololens中的检测摄像机基于空间映射例程更新位置设备,所以改变主摄像头的位置会产生意想不到的结果。如果您想改变视角,我建议您创建一个新相机并将视图转移到新相机并移动相机,然后当您想要切换回相机时恢复到主相机。这款新相机不能是主相机的小孩。一个警告是,我从来没有尝试过这一点,并提供了一个可能的解决方案,我不知道它是否会起作用。

+0

谢谢你的回复。 我没有把相机当成孩子,我创造了一个假人,把假人当成小孩,并且假人作为参考相机的位置。 –

+0

但我还是不明白。 这是相同的逻辑,但它在华硕的Zhenphone AR相机上工作正常,但我不知道是什么使它无法在hololens相机上正常工作。 –

+0

Hololens是一个完全不同的动物,由于你的视力在使用时并未被遮挡,所以相机的工作方式是不同的。它的本质是相同的答案,主摄像头总是0,0,0,0其移动的世界,而不是相机。当你开始改变主摄像头的位置时,你实际上正在改变人物视点的位置,这是一个预计在太空中的固定点,你不想在使用hololens时做这个动作 –

有对SetParent功能两个重载:

SetParent(Transform parent) 

SetParent(Transform parent, bool worldPositionStays); 

第一个使用true该参数为默认值。使用第二个函数并通过false来强制对象在设置其父项时使用其位置位置。

A.SetParent(B.Transform, false); 
+0

感谢您的回答。 但我这样做,但结果是一样的。 它已更改为与父级相同的位置。 –

+0

伤心,我没有hololens,不能复制这个问题。通常,调用SetParent函数后的位置问题可以通过提供第二个参数来解决。修改你的问题,用一个不断变化的相机值的截图,也许有人可以找出问题。 – Programmer