2017-09-20 21 views
0

编辑Hololens共享与UNET例如:客户端Hololens旋转和由其中I运行X或Z轴

应用距离关所以我注意到它未绑定到90度。基本上,无论我在哪里启动应用程序。如果我在相对的墙壁上启动应用程序,它会关闭180度。我也注意到,即使我在同一面墙上开始,并且如果我在房间的另一侧启动它们,它们就会离开那个距离。


我正在与Unet共享示例,我稍微修改了它,以便像子弹一样在网络上产生一个胶囊。但是,我发现HoloLens上发生的这种奇怪的事情在编辑器中没有发生。客户端HoloLens视图在x或z轴上偏离90度,我无法确切知道哪一个。但y轴仍然同步。

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

有没有其他人有这样的运气?任何有识之士将不胜感激。

回答

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; 
    } 
}