Вход HL1 для MRTK v2.1 - PullRequest
       2

Вход HL1 для MRTK v2.1

0 голосов
/ 30 июня 2019

Я пытаюсь найти конфигурацию или определить, какие дополнения мне нужно внести в MRTK v2.1, чтобы включить тестирование HL1 в работе «Редактора», как это было в предыдущем рабочем процессе. Упрощенно, это возможность использовать Gaze и мышь, как мы делали до MRTK v2.

Я не нашел способа привязать левую кнопку мыши в профиле к поведению, которое происходит с видимой рукой. При видимой руке нажатие левой мыши позволяет манипулировать. Нам просто нужно это с пристальным взглядом. Примечание. Изменение «Имитация руки» на «Жесты» не приводит к правильному поведению, а только делает курсор «Взгляд» постоянным без какого-либо взаимодействия.

Я задавал этот вопрос во многих местах, и его часто неправильно понимают, поэтому здесь есть некоторые предпосылки. Мы продолжаем доставлять приложения клиентам, которые требуют строгого контроля качества. Они должны быть проверены, как они были при использовании нового MRTK. Неразумно, чтобы наша команда QA использовала четко сформулированные руки в проекте HL1, так как он привносит человеческую ошибку, которая контрпродуктивна для тестирования ошибок.

Потребности: 1. Сохраняйте курсор в редакторе. (В последнем выпуске он исчезает после использования рук через пробел.) По нашему мнению, это должно быть переключением. Да, мы знаем, что вы можете нажать «1» для эмуляции выбора, но, как упоминалось выше, это не приемлемо для правильного контроля качества. 2. Удерживая левую кнопку мыши без использования рук, нажмите «Выбрать» и «Ущипнуть». Я написал служебное расширение для обработки 'Select', но добавление пинча, поскольку оно связано с артикуляцией рук, оказалось сложной задачей.

Предлагаемые решения: измените режим «Симуляция рук» на «Жесты». К сожалению, Gestures исключает возможность использовать руки для тестирования HL2 и не обеспечивает поведение «Выбрать» или «Сжать» для левой кнопки мыши. Так что это либо не работает правильно, либо не является правильным решением.

Мы не видим причины, по которой HL1 и HL2 не могут быть протестированы в редакторе одновременно. Мы просто упускаем использование левой кнопки мыши, когда руки не используются.

Это расширение службы, которое я создал для левой кнопки мыши, чтобы отправить событие «Выбрать». Это вызовет событие OnClick () для Intractable. Чего не хватает, так это способности 'Pinch' перемещать или манипулировать 'Manipulation Handler' также левой кнопкой мыши.

[MixedRealityDataProvider(
        typeof(IMixedRealityInputSystem),
        (SupportedPlatforms)(-1), // All platforms supported by Unity
        "Unity Mouse Device Manager")]
    public class TharynMouseService : BaseInputDeviceManager, ITharynMouseService
    {
        private TharynMouseServiceProfile tharynMouseServiceProfile;

        public TharynMouseService(
            IMixedRealityServiceRegistrar registrar,
            IMixedRealityInputSystem inputSystem,
            string name,  
            uint priority,  
            BaseMixedRealityProfile profile) : base(registrar, inputSystem, name, priority, profile) 
        {
            tharynMouseServiceProfile = (TharynMouseServiceProfile)profile;
        }

        private IMixedRealityInputSource inputSource;
        private IMixedRealityInputSystem inputSystem;

        public override void Initialize()
        {
            // Do service initialization here.
            inputSystem = Service as IMixedRealityInputSystem;
            Debug.Log("inputSystem: " + inputSystem);

            inputSource = inputSystem.RequestNewGenericInputSource("Tharyn Mouse Service");
            Debug.Log("inputSource: " + inputSource);

            inputSystem.RaiseSourceDetected(inputSource);
        }

        public override void Update()
        {
            // Do service updates here.
            if (UnityEngine.Input.GetKeyDown(KeyCode.Mouse0))
            {
                inputSystem.RaiseOnInputUp(inputSource, Handedness.None, tharynMouseServiceProfile.TapAction);
                Debug.Log("Down");
                Debug.Log("inputSystem: " + inputSystem);
                Debug.Log("inputSource: " + inputSource);
                Debug.Log("TapAction: " + tharynMouseServiceProfile.TapAction);
            }
        }
    }

Требуется:

  1. Запустить то же событие, что и клавиша «1» при отпускании пробела, чтобы вернуть курсор взгляда.
  2. Расширьте вышеупомянутую службу, включив в нее событие / действие «Ущипнуть», чтобы можно было манипулировать объектом с помощью взгляда и мыши, как и руками.

Приветствия и заранее спасибо!

Tharyn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...