Windows混合现实-AttachToController

时间:2018-08-14 16:29:59

标签: c# windows-mixed-reality

因此,我正在使用AttachToController脚本附加一个浮动在控制器顶部的窗口-效果很好。在调用该窗口的脚本中,我找出哪只手按下了控制器的菜单按钮,并适当地设置了Handedness字段(左或右)。我要解决的问题是:假设用户单击右侧控制器的菜单按钮,然后再单击左侧菜单按钮。我遇到的问题是,即使我更改了Handedness字段,该窗口仍然显示为连接到正确的控制器。

private void InteractionManager_InteractionSourcePressed(InteractionSourcePressedEventArgs args)
{
    hand = args.state.source.handedness;
    ...
}

private void SetHandednessAndActivate(GameObject go)
{
    AttachToController script = go.GetComponentInChildren<AttachToController>();
    if (script != null)
    {
        script.Handedness = hand;           
    }
    go.SetActive(true);
}

请注意,如果用户首先单击左侧的控制器菜单按钮,则该窗口始终位于左侧,右侧的控制器也是如此。我想要的是将窗口移动到使用哪个控制器。

1 个答案:

答案 0 :(得分:0)

代替

script.Handedness = hand;

使用

script.ChangeHandedness(hand);

所有其他位均由脚本处理。