Коллекция объектов прокрутки — MRTK2

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

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

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

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

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

Настройка прокручиваемого объекта

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

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

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

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

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

Прокрутка элементов коллекции объектов

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

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

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

Макет сетки

Важно!

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

Примечание

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

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

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

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

Просматриваемая область

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

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

Пример прокручивания сцены

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

Пример сцены коллекции объектов прокрутки

Пример заготовок прокрутки

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

Прокручивающиеся заготовки коллекции объектов

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