修改
所以我注意到它没有绑定到90度。它基本上是我启动应用程序的地方。如果我在相对的墙壁上启动应用程序,它会偏离180度。我也注意到,即使我开始在同一面墙上,如果我在房间的另一侧开始,他们就会离开那个距离。
我正在使用Sharing with Unet示例,我稍微对其进行了修改,只是在子弹上通过网络生成一个胶囊,类似于子弹。但是,我在HoloLens上发生的这种奇怪的事情在编辑器中没有发生。客户端HoloLens视图在x或z轴上偏离90度我无法确定哪一个。但是y轴仍然是同步的。
所以我有2个HoloLens和一台通过网络管理器HUD连接的计算机。我没有加入会话或任何问题,但由于某种原因,第二(客户端)HoloLens的旋转关闭。查看计算机上的场景视图时,主机和计算机客户端处于同步状态。但是,当我使用Holo客户端移动胶囊时,场景视图显示它正在向不同方向看,胶囊位于Holo客户端的左侧。
还有其他人对此有什么好运吗?对此有任何见解将不胜感激。
答案 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;
}
}