Unity - MRTK - HoloLens: модифицируйте коллайдер 2D-кнопок, чтобы курсор становился ближе - PullRequest
1 голос
/ 12 июня 2019

Моя текущая проблема заключается в том, что курсор появляется слишком далеко от кнопки.Вы можете увидеть на скриншоте, что я имею в виду.При наведении курсора на кнопку из списка это выглядит так:

enter image description here

Вопрос: Что можно сделать, чтобы курсор приблизился ккнопка, потому что на HoloLens вы видите расстояние?

Глядя где-то еще на холсте, кроме кнопок, курсор становится ближе:

enter image description here

- Правка -
Я должен упомянуть, что у сцены есть масштабированный куб (серая фигура на скриншоте), а перед ним холст мира (белая вещь), которыйсодержит список прокрутки / список.

Ответы [ 2 ]

2 голосов
/ 12 июня 2019

Я видел такое же поведение для элементов пользовательского интерфейса.

Я могу только предложить вам обходной путь. Это немного нелепо, но работает:

  1. Просмотрите все элементы пользовательского интерфейса, особенно Text и Image, и отключите опцию RayCast Target.

    enter image description here

    Это заставляет Курсор сидеть прямо над ними ... , но вы заметите свои Button sтеперь не отвечают, и вы больше не можете взаимодействовать с ними.

    enter image description here

    Это происходит потому, что физическая система требует либо RayCastTarget, либо Collider для запуска событий указателя, например, PointerEnter, PointerDown и т. Д.

  2. Поэтому теперь добавьте BoxCollider (, а не BoxCollider2D!) К вашим Button с и масштабируйте до нужного размера.Похоже, что вы используете VerticalLayoutGroup, поэтому вы можете просто исправить положение BoxCollider, установив RectTransform по центру один раз (VerticalLayoutgroup в любом случае будет усиливать привязку к левому верхнему углу).В моем случае BoxCollider нужно с 0.8 и высотой 0.1 ... а для z я выбираю 0.01, но оно может быть меньше, если вы хотите

    enter image description here

Ура, теперь кнопки снова взаимодействуют, и у Курсора есть только его обычное расстояние + половина выбранного z толщины BoxColliders.

enter image description here

Так как фоновый куб имеет свой собственный BoxCollider, в любом случае нам не нужно добавлять Colliders для ScrollView и пользовательского интерфейсапанелей.

Возможно, вам придется добавить их и для полос прокрутки, если они вам нужны!


Как уже говорилось, это больше похоже на быстрый обходной путь иможет не быть окончательным решением, так как всякий раз, когда изменяется размер Button или ScrollRect, вы должны также переработать эти жестко закодированные BoxCollider dimesnions ...

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

У меня была похожая проблема на 3D объектах. Это может произойти из-за определения коллайдера объектов. Я имею в виду, вы можете импортировать сетку рендеринга, но коллайдер сетки может быть другим (больше, меньше, ...)

Надеюсь, это решит вашу проблему;)

...