Hololens与Unet共享示例:客户端在x或z轴上运行应用程序时Hololens旋转和距离关闭

时间:2017-09-20 19:43:34

标签: unity3d hololens unet

修改

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

我正在使用Sharing with Unet示例,我稍微对其进行了修改,只是在子弹上通过网络生成一个胶囊,类似于子弹。但是,我在HoloLens上发生的这种奇怪的事情在编辑器中没有发生。客户端HoloLens视图在x或z轴上偏离90度我无法确定哪一个。但是y轴仍然是同步的。

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

还有其他人对此有什么好运吗?对此有任何见解将不胜感激。

1 个答案:

答案 0 :(得分: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;
    }
}