代码之家  ›  专栏  ›  技术社区  ›  Bert Hu

全息镜头设置父位置更改相机镜头

  •  0
  • Bert Hu  · 技术社区  · 7 年前

    我正在使用全息透镜工具箱大师。 问题是,当设置镜头相机的SetParent时,镜头的相机位置与父相机的位置相同。

    例如,如果A的位置为0、0、0,B的位置为0、0、4,则 A.SetParent(B.Transform) 使A的位置为0,0,-4。

    然而,如果你建立在全息透镜上并运行 A、 SetParent(B.Transform) ,A的位置将为0,0,4。

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

    我想要0,0,-4!!

    2 回复  |  直到 7 年前
        1
  •  0
  •   Kelso Sharp    7 年前

    更新:hololens应用程序中的主摄像机就像第一人称射击游戏中的角色摄像机,但它不是移动世界的摄像机,应用程序也不控制主摄像机,在FPS中,你可以通过控制器或键盘控制角色。这里的不同之处在于,主摄像机由全息透镜控制,0,0,0,0是固定的主摄像机点并且从不改变,所发生的是,全息透镜中的检测摄像机根据设备中的空间映射例程更新位置,因此主摄像机位置的改变将产生意外的结果。如果要更改视角,我建议您创建一个新的相机,并将视图转移到新的相机,然后移动该相机,并在要切换回主相机时还原回主相机。这个新摄像机不能是主摄像机的子摄像机。一个警告是,我从来没有尝试过这一点,并提供了一个可能的解决方案,我不知道它是否会工作或没有。

        2
  •  0
  •   Programmer    7 年前

    有两个重载 SetParent 功能:

    SetParent(Transform parent)
    
    SetParent(Transform parent, bool worldPositionStays);
    

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

    A.SetParent(B.Transform, false);