Как отключить телепорт Steam VR / Unity для одного контроллера - PullRequest
0 голосов
/ 31 января 2019

Цель состоит в том, чтобы телепортироваться только с одним контроллером.

Должно ли это быть сделано с помощью Наборов действий или это может быть сделано с помощью Event Trigger ?В скрипте Hand я также не смог найти ничего конкретного, связанного с контроллерами.

Использование Наборов действий , если я буду использовать на руку вариант и настроить какие настройки?Тогда как я могу создать поле I в Инспекторе?

Большое спасибо!

1 Ответ

0 голосов
/ 01 февраля 2019

Попробуйте получить ссылку на ваш контроллер SteamVR_Behaviour_Pose компонент и просто проверьте, является ли это контроллер, с которым вы хотите телепортироваться.SteamVR_Input_Sources - это перечисление, которое используется для идентификации вашего виртуального оборудования.

public SteamVR_Behaviour_Pose pose;

if(pose.inputSource == SteamVR_Input_Sources.LeftHand)
{
    //do stuff
}

Будьте осторожны.Я не совсем помню, но я думаю, что это может вызвать NullReferenceException, если оборудование, к которому вы пытаетесь получить доступ, не подключено.

Вы также можете, как вы уже думали, использовать ActionSets и используйте разные действия для обеих рук.То, что должно также работать, я просто никогда не пробовал.

В качестве бонуса:

public SteamVR_Action_Boolean action = SteamVR_Input.GetBooleanAction("YourActionName");

if (action.GetStateUp(pose.inputSource))
{
    //do even more stuff
}

Вот как вы проверяете действия в вашем скрипте.У меня ушло много времени на чтение документации, чтобы узнать себя.

Надеюсь, это поможет!

...