Unity OpenXR Чтение данных о триггерах и захватах с контроллера VR
У меня проблемы с использованием новой системы ввода на основе действий в Unity OpenXR.
Я хочу обновить объекты Animator со значениями
ActionBasedController
. В целом это работает, но дает только 0 или 1. Таким образом, анимация выглядит просто. Я ищу способ читать настоящие поплавки, чтобы анимация менялась только частично.
Это мой код для чтения значения триггера и захвата:
ActionBasedController controller = GetComponent<ActionBasedController>();
handAnimator.SetFloat("Trigger", controller.activateAction.action.ReadValue<float>());
handAnimator.SetFloat("Grip", controller.selectAction.action.ReadValue<float>());
Я пытался исследовать эту тему, но нашел ответы только о старой системе ввода.
Любая помощь или новые идеи приветствуются.
В случае необходимости я использую Unity 2020.3.4f1 и подключаемый модуль OpenXR версии 1.0.3.
1 ответ
Во входных данных действия по умолчанию у вас также должно быть значение действия выбора, которое возвращает значение оси. В вашем коде вы получаете доступ к значению кнопки здесь, которое даст вам 0 или 1. Поэтому, если вы хотите, чтобы значения находились между 0 и 1, ваш код должен быть:
ActionBasedController controller = GetComponent<ActionBasedController>();
handAnimator.SetFloat("Trigger", controller.activateActionValue.action.ReadValue<float>());
handAnimator.SetFloat("Grip", controller.selectActionValue.action.ReadValue<float>());