Прокрутка коллекции объектов — MRTK2

Scrolling object collection

Коллекция объектов прокрутки MRTK — это компонент пользовательского интерфейса, который позволяет прокручивать трехмерное содержимое через автономную область для просмотра. Движение прокрутки может быть вызвано взаимодействием с близкого или дальнего ввода и дискретным разбиением на страницы. Он поддерживает как интерактивные, так и неинтерактивные объекты.

Начало работы с коллекцией объектов прокрутки

Настройка сцены

  1. Создайте новую сцену unity.
  2. Добавьте MRTK в сцену, перейдя к Смешанная реальность Toolkit>Add to Scene and Configure.

Настройка объекта прокрутки

  1. Создайте пустой игровой объект в сцене и измените его положение на (0, 0, 1).

  2. Добавьте компонент коллекции объектов прокрутки в игровой объект.

    При добавлении коллекции прокручиваемых объектов к корневому игровому объекту автоматически присоединяется прямоугольник коллайдера и близкого взаимодействия сенсорного компонента. Эти компоненты позволяют объекту прокрутки прослушивать события ввода близкого и дальнего взаимодействия, например касание указателя или щелчок.

    Коллекция объектов прокрутки MRTK содержит два важных элемента, созданных в качестве дочерних игровых объектов в иерархии корневой прокручиваемой объектной иерархии:

    • Container — Все прокручиваемые объекты содержимого должны быть дочерними объектами игрового объекта контейнера.
    • Clipping bounds — Если включена маскировка содержимого прокрутки, элемент обрезки границ гарантирует, что только прокручиваемое содержимое внутри его границ отображается. Игровой объект обрезки границ имеет два компонента: отключенный коллайдер коробки и обрезку.

Scrolling object collection elements

Добавление содержимого в объект прокрутки

Коллекцию объектов прокрутки можно объединить с коллекцией объектов сетки для макета содержимого в сетке выровненных элементов с одинаковым размером и интервалом.

  1. Создайте пустой игровой объект в качестве дочернего элемента контейнера прокрутки.
  2. Добавьте компонент коллекции объектов сетки в игровой объект.
  3. Для прокрутки вертикального столбца на вкладке инспектора настройте коллекцию объектов сетки следующим образом:
    • Числовые столбцы: 1
    • Макет: столбец и строка
    • Привязка: верхний левый
  4. Измените ширину и высоту ячейки в соответствии с измерениями объектов содержимого.
  5. Добавьте объекты содержимого в качестве дочерних элементов объекта сетки.
  6. Нажмите коллекцию обновлений.

Grid layout

Важно!

Для правильной работы любой прокручиваемый материал объекта содержимого должен использовать стандартный шейдер MRTK , чтобы эффект обрезки на просматриваемой области работал правильно.

Примечание

Если включена маскировка содержимого прокрутки, коллекция объектов прокрутки добавит компонент экземпляра материала ко всем объектам содержимого, которые подключены отрисовщиком. Этот компонент используется для управления временем существования экземпляров материалов и повышения производительности памяти.

Настройка просматриваемой области прокрутки

  1. Для вертикальной прокрутки одного столбца объектов на вкладке инспектора настройте коллекцию объектов прокрутки следующим образом:
    • Ячейки на уровне: 1
    • Выберите количество уровней на страницу в соответствии с требуемым количеством видимых строк.
  2. Измените ширину ячейки страницы, высоту и глубину в соответствии с измерениями объектов содержимого.

Обратите внимание, что объекты содержимого, входящие за пределы просматриваемой области прокрутки, теперь отключены, а объекты, пересекающиеся с проволочной рамкой прокрутки, могут быть частично замаскированы примитивом обрезки.

Viewable area

Тестирование коллекции объектов прокрутки в редакторе

  1. Нажмите кнопку воспроизведения и удерживайте пробел, чтобы отобразить руку имитации ввода.
  2. Переместите руку, пока не переместите коллайдер прокрутки или любое интерактивное содержимое прокрутки в фокусе, и активируйте движение прокрутки, щелкнув и перетащив вверх и вниз с помощью левой мыши.

Управление прокручивающим объектом из кода

Коллекция объектов прокрутки MRTK предоставляет несколько открытых методов, позволяющих перемещать контейнер прокрутки, привязав его положение в соответствии с pagination конфигурацией свойств.

Пример доступа к интерфейсу разбиения на страницы коллекции объектов прокрутки доступен для использования в папке MRTK/Examples/Demos/ScrollingObjectCollection/Scripts . Пример скрипта прокрутки на страницы можно связать с любой существующей коллекцией объектов прокрутки в сцене. Затем на скрипт могут ссылаться компоненты сцены, предоставляющие события Unity (например, кнопка MRTK).

public class ScrollablePagination : MonoBehaviour
{
    [SerializeField]
    private ScrollingObjectCollection scrollView;

    public void ScrollByTier(int amount)
    {
        scrollView.MoveByTiers(amount);
    }
}

Прокрутка свойств коллекции объектов

Общие сведения Описание
Направление прокрутки Направление прокрутки содержимого.
Разбиение на страницы Описание
Ячейки на уровне Количество ячеек в строке в представлении прокрутки вверх вниз или количество ячеек в столбце в представлении прокрутки влево вправо.
Уровни на странице Количество видимых уровней в области прокрутки.
Ячейка страницы Измерения ячейки разбиения на страницы.
Дополнительные параметры Описание
Режим редактирования маски Режимы редактирования для определения границ маскирования рамки обрезки. Функция Auto автоматически использует значения разбиения на страницы. Manual позволяет напрямую манипулировать объектом обрезки.
Режим редактирования коллайдера Режимы редактирования для определения границ коллайдера взаимодействия прокрутки. Функция Auto автоматически использует значения разбиения на страницы. Manual позволяет напрямую манипулировать коллайдером.
Может прокручиваться Включает или отключает прокрутку с использованием близкого и дальнего взаимодействия.
Использование при предварительной отрисовки Указывает, будет ли scrollingObjectCollection использовать событие Камера OnPreRender для управления видимостью содержимого.
Кривая разбиения на страницы Кривая анимации для разбиения на страницы.
Длина анимации Время (в секундах) вычисляемого объекта PaginationCurve займет.
Порог прокрутки разностной руки Расстояние в метрах текущий указатель может перемещаться по направлению прокрутки перед запуском перетаскивания прокрутки.
Расстояние касания переднего плана Расстояние в метрах для размещения локальной плоскости xy, используемой для проверки начала сенсорного взаимодействия в передней части представления прокрутки.
Порог выпуска Вывод суммы в метрах от границ прокрутки, необходимых для перехода от касания к освобожденной.
Скорость Описание
Тип скорости Требуемый тип падения скорости для полосы прокрутки.
Множитель скорости Величина (дополнительная) скорость, применяемая к полосе прокрутки.
Скорость ослабить Количество откатов, примененных к скорости.
Множитель отказов Множитель для добавления дополнительных отказов в превышение списка при использовании резервирования для каждого кадра или отката для каждого элемента.
Параметры отладки Описание
Маска включена Режим видимости содержимого прокрутки. Значение по умолчанию маскируют все объекты за пределами просматриваемой области прокрутки.
Отображение пороговых плоскостей Если значение равно true, редактор отрисовывает плоскости пороговых значений касания вокруг границ прокрутки.
Отладка разбиения на страницы Используйте этот раздел для отладки разбиения на страницы прокрутки во время выполнения.
События Description
Нажатие кнопки Активируется, когда фоновый коллайдер прокрутки или любой из его интерактивного содержимого получает щелчок.
На сенсорном устройстве запущено Активируется, когда фоновый коллайдер прокрутки или любой из его интерактивного содержимого получает близкое касание взаимодействия.
На сенсорном устройстве завершено Активируется при завершении активного сенсорного взаимодействия, когда указатель ближнего взаимодействия пересекает пороговое значение выпуска.
На момент начала Активируется при запуске контейнера прокрутки путем взаимодействия, отключения скорости или разбиения на страницы.
По импульсу закончился Активируется при остановке перемещения контейнера прокрутки путем взаимодействия, отключения скорости или разбиения на страницы.

Пример сцены прокрутки

Пример сцены ScrollingObjectCollection.unity состоит из 3 прокручиваемых примеров, каждый из которых имеет другую конфигурацию падения скорости. Пример сцены содержит стены, которые показывают поведение размещения поверхности, отключенное по умолчанию в иерархии. Пример сцены можно найти в папке MRTK/Examples/Demos/ScrollingObjectCollection/Scenes .

Scrolling object collection example scene

Прокручивающиеся примеры префаб

Для удобства доступны две префабы коллекции объектов прокрутки. Примеры префаб можно найти в папке MRTK/Examples/Demos/ScrollingObjectCollection/Prefabs .

Scrolling object collection prefabs

См. также раздел