Коллекция объектов прокрутки — MRTK2
Коллекция объектов прокрутки MRTK — это компонент пользовательского интерфейса, который позволяет прокручивать трехмерное содержимое через автономную просматриваемую область. Движение прокрутки может быть вызвано взаимодействием близкого или дальнего ввода, а также дискретным разбиением на страницы. Он поддерживает как интерактивные, так и неинтерактивные объекты.
Начало работы с коллекцией прокручиваемого объекта
Настройка сцены
- Создайте новую сцену unity.
- Добавьте MRTK в сцену, перейдя к Смешанная реальность Toolkit>Add to Scene (Добавить в сцену) и Configure (Настроить).
Настройка прокручиваемого объекта
Создайте пустой игровой объект в сцене и измените его положение на (0, 0, 1).
Добавьте компонент коллекции прокручиваемого объекта в игровой объект.
При добавлении коллекции прокручиваемых объектов к корневому игровому объекту автоматически прикрепляются прямоугольный коллайдер и компонент , поддерживающий близкое взаимодействие . Эти компоненты позволяют объекту прокрутки прослушивать события ближнего и дальнего взаимодействия, такие как касание указателя или щелчок.
Коллекция прокручиваемых объектов MRTK содержит два важных элемента, которые создаются как дочерние игровые объекты в корневой иерархии прокручиваемых объектов:
Container
— Все прокручиваемые объекты содержимого должны быть дочерними элементами объекта игры-контейнера.Clipping bounds
— Если маскирование содержимого прокрутки включено, элемент обрезки границ гарантирует, что будет видимым только прокручиваемое содержимое внутри его границ. Игровой объект обрезки границ состоит из двух компонентов: отключенного прямоугольного коллайдера и обрезки.
Добавление содержимого в прокручиваемый объект
Прокручиваемую коллекцию объектов можно объединить с коллекцией объектов сетки для размещения содержимого в сетке выровненных элементов с одинаковым размером и интервалом.
- Создайте пустой игровой объект в качестве дочернего элемента контейнера прокрутки.
- Добавьте компонент коллекции объектов сетки в игровой объект.
- Для вертикальной прокрутки одного столбца на вкладке Инспектор настройте коллекцию объектов сетки следующим образом:
- Число столбцов: 1
- Макет: столбец, а затем строка
- Привязка: верхний левый
- Измените ширину и высоту ячейки в соответствии с размерами объектов содержимого.
- Добавьте объекты содержимого в качестве дочерних элементов объекта сетки.
- Нажмите кнопку update collection.
Важно!
Любой материал объекта содержимого прокрутки должен использовать стандартный шейдер MRTK , чтобы эффект обрезки на просматриваемой области работал правильно.
Примечание
Если маскирование содержимого прокрутки включено, коллекция прокручиваемых объектов добавит компонент экземпляра материала к любым объектам содержимого, к которым подключен отрисовщик. Этот компонент используется для управления временем существования экземпляров материалов и повышения производительности памяти.
Настройка просматриваемой области прокрутки
- Для вертикальной прокрутки по одному столбцу объектов на вкладке Инспектор настройте коллекцию прокручиваемых объектов следующим образом:
- Количество ячеек на уровне: 1
- Выбор количества уровней на странице в соответствии с требуемым количеством видимых строк
- Изменение ширины, высоты и глубины ячеек страницы в соответствии с размерами объектов содержимого.
Обратите внимание, что объекты содержимого, расположенные за пределами области прокрутки, теперь отключены, а объекты, пересекающиеся с проволочной рамкой прокрутки, могут быть частично замаскированы примитивом обрезки.
Тестирование коллекции прокручиваемого объекта в редакторе
- Нажмите кнопку воспроизведения и удерживайте пробел, чтобы отобразить руку имитации ввода.
- Переместите руку, пока фокус не окажется в фокусе коллайдера прокрутки или любого интерактивного содержимого прокрутки, и активируйте прокрутку, щелкнув и перетащив вверх и вниз левой мышью.
Управление прокручивающимся объектом из кода
Коллекция объектов прокрутки 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
.