Кнопка — MRTK3

Кнопка Main

Кнопка предоставляет пользователю возможность вызвать немедленное действие. Это один из самых базовых компонентов в смешанной реальности, и обеспечение удовлетворяющих и надежных взаимодействий кнопок имеет важное значение для качества смешанной реальности. MRTK предоставляет две категории префаб кнопок: на основе Canvas и не на основе Canvas. Обе конфигурации используют PressableButton скрипт, подкласс расширенного StatefulInteractable для включения поведения, характерных для кнопок.

Узнайте больше о том, как работает гибридная система пользовательского интерфейса Canvas..

Примеры сцен

Если вы используете проект шаблона разработки, доступны несколько примеров сцен, демонстрирующих доступные префабы кнопок.

CanvasUITearSheet.unity отображает все доступные варианты кнопок на основе Canvas в MRTK.

Canvas Слезоточивый лист

CanvasExample.unity показывает некоторые примеры создания больших макетов с помощью компонентов на основе Canvas.

пример сцены Canvas

UITearSheet.unity отображает все доступные варианты, не относящиеся к Canvas, в MRTK.

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

Prefabs (Canvas)

кнопки на основе Canvas являются гибкими и настраиваемыми и могут изменяться до любого измерения или пропорции. Таким образом, предоставляются только несколько префабов кнопок.

  • EmptyButton предоставляет эффект нажатой поверхности или переднего плана, голографической задней панели и эффект свечения. Нет текста, значка, метки или другого содержимого. Это так более абстрактные элементы управления, подобные кнопке, могут быть созданы в качестве варианта этого префаба, не мешая содержимому текста или значка.
  • ActionButton — это простая кнопка, содержащая значок, текст и метку. Эти отдельные компоненты можно включить или отключить, и система макета будет соответствующим образом адаптироваться.

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

Добавление переключателя

Префабы (не Canvas)

Кнопки без холста не могут изменяться; В результате большое количество префаб кнопок предоставляется во многих перестановках размера и признаков. Эти префабы называются в формате : PressableButton_SIZE_STYLE. Например, примененная к объекту директива

  • PressableButton_32x32mm_IconAndText: кнопка размером 32x32mm со значком и текстом
  • PressableButton_128x32mm_SinglelineTextWithSubtitle: широкий размер кнопки размером 128x32mm с одним текстом строки и текстом субтитров

Структура (Canvas)

Различные части ActionButton можно включить или отключить, чтобы настроить внешний вид и поведение кнопки. Мы расчленили две различные возможные конфигурации, чтобы отобразить различные части префаб кнопки. Backglow не отображается на этих снимках экрана, так как кнопка не активна.

Во-первых, большая конфигурация, в которой основной объект Text активен и использует встроенные стили для отображения заголовка и подтекста. Большая Canvas структура кнопки Вторая — меньшая конфигурация, в которой активна для отображения описания действия под значком. Основной объект Text отключен. Небольшая структура кнопки Canvas

Структура (не Canvas)

На следующем снимка экрана показана структура кнопки, не основанной на холсте.

Структура кнопки без холста

Класс PressableButton

Класс PressableButton является производным от StatefulInteractable новых и переопределенных функций, относящихся к кнопкам. В инспекторе можно настроить параметры, связанные с громкостным нажатием, помимо всех других настраиваемых StatefulInteractableпараметров. Снимок экрана: инспектор PressableButton

Создание пользовательского интерфейса с помощью кнопок

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

Создание пользовательского интерфейса 1

Создание пользовательского интерфейса 2

Создание пользовательского интерфейса 3