Смешанная реальность Windows — Аттачтоконтроллер

Итак, я использую скрипт AttachToController, чтобы прикрепить окно, плавающее поверх контроллера, и это прекрасно работает. В сценарии, вызывающем окно, я выясняю, какая рука нажала кнопку меню контроллера, и соответствующим образом устанавливаю поле Handedness (Left или Right). Проблема, которую я пытаюсь решить, заключается в следующем: допустим, пользователь нажимает кнопку меню правого контроллера, а затем нажимает кнопку меню слева. Проблема, с которой я столкнулся, заключается в том, что, несмотря на то, что я изменил поле 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);
}

Просто для ясности: если пользователь сначала нажмет кнопку меню левого контроллера, окно всегда будет слева, и то же самое верно для правого контроллера. Я хочу, чтобы окно перемещалось к тому контроллеру, который используется.


person Brian P.    schedule 14.08.2018    source источник


Ответы (1)


Вместо

script.Handedness = hand;

Использовать

script.ChangeHandedness(hand);

Все остальные биты обрабатываются скриптом.

person Brian P.    schedule 14.08.2018