Как правильно использовать длину смахивания плеера в пикселях для перемещения элементов пользовательского интерфейса в Unity? - PullRequest
0 голосов
/ 09 июня 2018

В целях оптимизации мне пришлось создать список пула (действующий как представление прокрутки), чтобы уменьшить количество экземпляров игровых объектов.В этом списке используются перетаскиваемые интерфейсы (IDragHandler, IBeginDragHandler, IEndDragHandler) для оценки входных данных игрока в реальном времени и перемещения / реорганизации его элементов пользовательского интерфейса.

Все они используют RectTransform, и я изменяю их привязанную позицию в пользовательском интерфейсе.в соответствии с длиной перетаскивания в последнем кадре.

Однако мне не удается синхронизировать сенсорный ввод и перемещение элементов.При перелистывании мой список прокручивается быстрее, чем мой ввод (т. Е. При визуальном перелистывании 130 пикселей мой список прокручивается примерно на 180 пикселей)

Я тестировал до конца, но значения, собранные из ввода, проходят через скрипт ив конце используется для смещения anchoredPosition объекта RectTransform одинаково, каждый кадр, все время.Сначала я подумал, что это связано с разрешением экрана, так как скорость прокрутки у разных устройств меняется, но нормализация вектора относительно разрешения экрана не решает проблему.

Я что-то упустил, и/ или есть простой способ (метод Unity), чтобы исправить это поведение?

1 Ответ

0 голосов
/ 16 июля 2018

Моему коллеге, наконец, удалось решить проблему, когда он наткнулся на скрипт, изменяющий масштаб родительского gameObject.

Убедитесь, что вы проверяли весы у gameObject и его родителя, чтобы убедиться, что у вас естьправильное соотношение.

...