Смешанная реальность для 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);
Все остальные биты обрабатываются скриптом.