0

编辑

所以我注意到它并没有绑定到 90 度。它基本上是我启动应用程序的地方。如果我在对面的墙上启动应用程序,它会偏离 180 度。我也注意到,即使我从同一面墙上开始,如果我从房间的另一侧开始,它们也会偏离那个距离。


我正在使用“与 Unet 共享”示例,并对其进行了一些修改,以便在网络上生成一个胶囊,类似于子弹。但是,我在 HoloLens 上发生了这种在编辑器中没有发生的奇怪事情。客户端 HoloLens 视图在 x 或 z 轴上偏离了 90 度,我无法真正分辨出哪一个。但是 y 轴仍然是同步的。

所以我有 2 个 HoloLens 和一台通过网络管理器 HUD 连接的计算机。我加入会话或其他任何问题都没有问题,但由于某种原因,第二个(客户端)HoloLens 的旋转已关闭。当通过计算机上的场景视图查看时,主机和计算机客户端是同步的。但是,当我使用 Holo 客户端移动胶囊时,场景视图显示它正在朝不同的方向看,并且胶囊位于 Holo 客户端的左侧。

有其他人对此有任何运气吗?对此的任何见解将不胜感激。

4

1 回答 1

0

通过在对象控制器中添加一个命令来解决此问题,当有人获得对象的权限时,该命令根据共享世界锚点的逆变换点设置其位置。看起来像这样:

private void Update()
{
    if (receivedAuthority)
    {
        Vector3 objDir = transform.forward;
        Vector3 objPos = transform.position + objDir * .01f;

        localPosition = sharedAnchorTrans.InverseTransformPoint(objPos);

            CmdTransform(localPosition);           
    }

   else if(!receivedAuthority)
    {

         transform.localPosition = localPosition;

    }
}

[Command]
public void CmdTransform(Vector3 position)
{
    if (!isLocalPlayer)
    {
      localPosition = position;
    }
}
于 2017-09-29T15:38:29.253 回答