В MRTK событие OnPointerClicked
запускается при нажатии контроллера. Например, щелчок для HoloLens 1 и 2 - это жест крана, а щелчок в VR - нажатие кнопки запуска на контроллере. Щелчок также может быть смоделирован в редакторе в режиме воспроизведения с использованием имитации ввода. Чтобы использовать симуляцию ввода, удерживайте клавишу пробела, чтобы показать руку симуляции ввода, а затем щелкните мышью, чтобы смоделировать щелчок для руки в режиме игры. Информация о моделировании ввода
По умолчанию события указателя инициируются, если объект игры находится в фокусе. Если вы хотите использовать события указателя глобально, IMixedRealityPointerHandler
необходимо зарегистрировать глобально следующим образом:
private void OnEnable()
{
CoreServices.InputSystem?.RegisterHandler<IMixedRealityPointerHandler>(this);
}
private void OnDisable()
{
CoreServices.InputSystem?.UnregisterHandler<IMixedRealityPointerHandler>(this);
}
Вы можете создать куб при нажатии, переместив функцию OnPointerEnter()
в OnPointerClicked
. Куб создается в месте щелчка во фрагменте кода ниже:
private void OnEnable()
{
CoreServices.InputSystem?.RegisterHandler<IMixedRealityPointerHandler>(this);
}
private void OnDisable()
{
CoreServices.InputSystem?.UnregisterHandler<IMixedRealityPointerHandler>(this);
}
public void OnPointerClicked(MixedRealityPointerEventData eventData)
{
Debug.Log("OnPointerClicked");
OnPointerEnter(eventData.Pointer.Position);
}
public void OnPointerEnter(Vector3 cubePosition)
{
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.localScale = Vector3.one * 0.1f;
cube.transform.position = cubePosition;
}
Gif фрагмента кода Надеюсь, это поможет!