Смешанная реальность для Windows - AttachToController

Поэтому я использую скрипт 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 ответ

Решение

Вместо

script.Handedness = hand;

использование

script.ChangeHandedness(hand);

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

Другие вопросы по тегам