0

我正在使用 Hololens Lens Toolkit Master。问题是当你设置lens camera的SetParent时,lens的camera位置变成和parent的位置一样。

例如,如果 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 !!

4

2 回答 2

0

一般来说,主相机的父级就是场景本身,你不能再高,所以父级就是相机,除非你的相机在另一个游戏对象内。还要记住,对于 Hololens,相机是其他一切都需要相对于相机移动的稳定位置,而不是相反。

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

于 2017-11-08T22:07:47.277 回答
0

该函数有两个重载SetParent

SetParent(Transform parent)

SetParent(Transform parent, bool worldPositionStays);

第一个使用true参数作为默认值。使用第二个函数并传递false给它以强制对象在设置其父对象时使用其位置位置。

A.SetParent(B.Transform, false);
于 2017-10-17T06:04:56.263 回答