Слайдер
Слайдер позволяет пользователям выбирать значение с плавающей точкой из диапазона значений. Вы можете использовать Слайдер для изменения значения, например, громкости звука или яркости света. Чтобы установить значение, вы перетаскиваете большой палец по треку или щелкнете сам трек. Слайдер может также включать поле ввода текста, где вы можете изменить значение напрямую.
Примечание: Чтобы выравнить элемент с другими полями в окне Inspector, просто примените .unity-base-field__aligned USS-класс. Дополнительные сведения см. в BaseField.
Создать слайдер
Вы можете создать Слайдер с помощью UI Builder, UXML или C#. Следующий пример C# создает Слайдер со значением по умолчанию, низким значением и высоким значением, а также устанавливает направление слайдера:
var slider = new Slider();
slider.value = 0.5f;
slider.lowValue = 0;
slider.highValue = 100;
slider.direction = SliderDirection.Horizontal;
Размер страницы
Управляющий элемент Slider имеет свойство page-size, которое управляет тем, насколько большой палец перемещается и насколько изменяется значение, когда вы нажимаете след по обе стороны большого пальца.
Если значение размера страницы 0, то щелчок по треку перемещает большой палец на позицию курсора или указателя и соответственно обновляет значение.
Если значение размера страницы больше 0, то щелчок по треку перемещает большой палец к курсору или позиции указателя на определенную величину. Управление ползунок рассматривает размер страницы как процент от общего диапазона.
Например, если общий диапазон равен 200, а размер страницы равен 20, то размер страницы равен 20% из 200или 40. Каждый раз, когда вы нажимаете на дорожку, большой палец перемещается, и значение увеличивается или уменьшается на 40.
Горячие клавиши
Для навигации и настройки управления Слайдером можно использовать сочетания клавиш. В следующей таблице перечислены сочетания клавиш:
| Ярлык | Действия |
|---|---|
| Стрелки | Переместить на 1/100 из всего диапазона. |
| Стрелки + Shift | Переместить на 1/10 из всего диапазона. |
| Домой | Перейти к началу слайдера. |
| Конец | Перейти к концу слайдера. |
| Страница вверх | Перейти вверх на (1/100 of the range) × page size. |
| Страница вниз | Перейти вниз на (1/100 of the range) × page size. |
Пример
Следующий пример UXML создает Слайдер:
<UXML xmlns="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements">
<Slider
label="UXML Slider"
name="the-uxml-slider"
low-value="0"
high-value="100"
page-size="1"
value="42.2" />
</UXML>
Следующий пример USS стилизует Слайдер:
.some-styled-slider {
-unity-font-style: bold;
}
Следующий пример C# иллюстрирует некоторые из настраиваемых функций Слайдера:
// Get a reference to the slider from UXML and assign it its value.
var uxmlSlider = container.Q<Slider>("the-uxml-slider");
uxmlSlider.value = 42.2f;
// Create a new slider, disable it, and give it a style class.
var csharpSlider = new Slider("C# Slider", 0, 100);
csharpSlider.SetEnabled(false);
csharpSlider.AddToClassList("some-styled-slider");
csharpSlider.value = uxmlSlider.value;
container.Add(csharpSlider);
// Mirror value of uxml slider into the C# field.
uxmlSlider.RegisterCallback<ChangeEvent<float>>((evt) =>
{
csharpSlider.value = evt.newValue;
});
Чтобы попробовать этот пример в Unity, перейдите в Окно > UI Toolkit > Образцы.
Базовый класс C# и пространство имён
C# класс: Slider
Пространство имен: UnityEngine.UIElements
Базовый класс: BaseSlider_1
Унаследованные атрибуты UXML
Этот элемент наследует от своего базового класса следующие атрибуты:
| Имя | Тип | Описание |
|---|---|---|
binding-path |
string |
Путь к целевому свойству для привязки. |
direction |
UIElements.SliderDirection |
Это фактическое свойство, которое содержит информацию о направлении слайдера. |
fill |
boolean |
Позволяет использовать заполнение для настройки цвета и формы ползунка. |
focusable |
boolean |
Если false, то элемент не может быть фокусирован. Элемент может быть фокусирован только в том случае, если его свойство canGrabFocus имеет значение true. |
high-value |
float |
Это максимальное значение, которое кодирует ползунок. |
inverted |
boolean |
Это указывает, инвертирован ли этот ползунок. Для инвертированного горизонтального ползуна высокое значение находится слева, низкое значение находится справа. Для инвертированного вертикального ползуна высокое значение находится внизу, низкое значение находится сверху. |
label |
string |
Строка, представляющая метку, которая будет отображаться рядом с полем. Если строка пуста, элемент label удаляется из иерархии. Если строка не пуста, элемент label добавляется в иерархию. |
low-value |
float |
Это минимальное значение, которое кодирует ползунок. |
page-size |
float |
Представляет собой значение, которое должно быть применено к рассчитанному смещению прокрутки во время прокрутки слайдера, например, при щелчке по треку или щелчке по стрелкам слайдера. |
show-input-field |
boolean |
Видимость необязательного поля внутри элемента управления слайдером. Установите значение этого свойства на true, чтобы отобразить числовое текстовое поле, которое предоставляет другой способ редактирования значения слайдера. |
tabindex |
int |
Целое число, используемое для сортировки фокусируемых элементов в кольце фокуса. Должно быть больше или равно нулю. Установка значения tabIndex меньше 0 (например, −1) удаляет элемент из кольца фокуса и навигации по вкладкам. |
value |
float |
Фактическое значение слайдера. |
Этот элемент также наследует следующие атрибуты от VisualElement:
| Имя | Тип | Описание |
|---|---|---|
content-container |
string |
Логический контейнер, в который добавляются дочерние элементы. Если к этому элементу добавляется дочерний элемент, то он добавляется в контейнер содержимого этого элемента. При итерации над VisualElement.Children При использовании элемента вместо самого элемента используется иерархия контейнера содержимого элемента. Это может привести к неожиданным результатам, например, к игнорированию элементов событиями навигации, если они не находятся непосредственно в иерархической структуре контейнера. См. IFocusRing для больше информации.Если контейнер содержимого совпадает с самим элементом, то дочерние элементы добавляются непосредственно к элементу. Это верно для большинства элементов, но может быть переопределено более сложными типами. ScrollView, например, имеет контейнер содержимого, отличающийся от самого себя. В этом случае дочерние элементы, добавленные к представлению прокрутки, добавляются вместо этого к его элементу контейнера содержа-VisualElement.Hierarchy.parent) дочерних элементов является элементом контейнера содержимого прокрутки, их логическим родителем (VisualElement.parentПоскольку некоторые фокусируемые дочерние объекты представления прокрутки не являются частью его логической иерархии, такие как его Scroller элементов, эти фокусируемые дочерние элементы не рассматриваются по умолчанию при использовании последовательной навигации. Как я могу изменить, какой элемент будет фокусироваться дальше для примера решения, если правила навигации по умолчанию не соответствуют вашим потребностям. |
data-source |
Object |
Назначает источник данных этому VisualElement, который переопределяет любой унаследованный источник данных. Этот источник данных наследуется всеми дочерними объектами. |
data-source-path |
string |
Путь от источника данных к значению. |
data-source-type |
System.Type |
Возможный тип источника данных, присваиваемый этому VisualElement. Эта информация используется UI Builder только как подсказка для определенного заполнения поля пути источника данных, когда эффективный источник данных не может быть указан во время проектирования. |
enabled |
boolean |
Возвращает true, если VisualElement разрешен локально.Этот флаг не изменяется, если VisualElement имплицитно отключен одним из родителей. Чтобы проверить это, используйте enabledInHierarchy. |
language-direction |
UIElements.LanguageDirection |
Указывает направленность текста элемента. Значение будет распространяться на дочерей элемента. Установка languageDirection на RTL может получить только базовую поддержку RTL, такую как инверсия текста. Чтобы получить более полную поддержку RTL, такую как перерыв строки, перенос слов или формирование текста, вы должны включить Усовершенствованный текстовый генератор. |
name |
string |
Имя этого VisualElement. Используйте это свойство для написания селекторов USS, которые нацелены на определенный элемент. Стандартная практика заключается в том, чтобы дать элементу уникальное имя. |
picking-mode |
UIElements.PickingMode |
Определяет, может ли этот элемент быть целью событий указателя или выбран IPanel.Pick запросов.Элементы не могут быть выбраны, если: - Они невидимы. style.display установлен на DisplayStyle.NoneЭлементы с режимом подбора PickingMode.Ignore никогда не получать псевдо-state. |
style |
string |
Задает значения стиля на VisualElement.Возвращаемые данные стиля, рассчитанные из USS файлы или встроенные стили, записанные в этот объект в C#, не представляет полностью разрешенные стили, такие как окончательная высота и ширина VisualElement. Чтобы получить доступ к этим полностью разрешенным стилям, используйте resolvedStyle.Дополнительные сведения об использовании этого свойства и всех поддерживаемых USS свойства, см. Применить стили в C# сценарии и USS ссылка на свойства страницы руководства. |
tooltip |
string |
Текст, который будет отображаться внутри информационного поля после того, как пользователь задержится над элементом небольшое время. Это поддерживается только в Редакторе UI. |
usage-hints |
UIElements.UsageHints |
Комбинация значений подсказки, которые указывают высокоуровневые предполагаемые схемы использования для VisualElement. Это свойство может быть установлено только тогда, когда VisualElement еще не является частью Panel. Как только оно становится частью Panel, это свойство становится эффективно только для чтения, и попытки изменить его будут вызывать исключение. Указание правильного UsageHints заставляет систему принимать более правильные решения о том, как обрабатывать или ускорять определенные операции на основе предполагаемой схемы использования. Обратите внимание, что эти подсказки не влияют на поведение или визуальные результаты, а только влияют на общую производительность панели и элементов внутри нее. Рекомендуется всегда рассматривать возможность указания правильного UsageHints, но помните, что некоторые UsageHints могут быть внутренне проигнорированы при определенных условиях (e.g. из-за аппаратных ограничений на целевой платформе). |
view-data-key |
string |
Используется для устойчивости данных представления, таких как развернутые состояния дерева, положение прокрутки или уровень масштаба. Этот ключ используется для сохранения и загрузки данных представления из хранилища данных представления. Если этот ключ не установлен, устойчивость отключена для связанного VisualElement. Дополнительные сведения см. в разделе Устойчивость данных представления в руководстве Unity. |
Классы USS
В таблице ниже перечислены все открытые имена свойств C# и связанные с ними селекторы USS.
| C# собственность | USS выбор | Описание |
|---|---|---|
ussClassName |
.unity-slider |
Имя USS-класса для элементов этого типа. |
labelUssClassName |
.unity-slider__label |
Имя USS-класса для меток в элементах этого типа. |
inputUssClassName |
.unity-slider__input |
Имя USS-класса для элементов ввода в элементах этого типа. |
ussClassName |
.unity-base-slider |
Имя USS-класса для элементов этого типа. |
labelUssClassName |
.unity-base-slider__label |
Имя USS-класса для меток в элементах этого типа. |
inputUssClassName |
.unity-base-slider__input |
Имя USS-класса для элементов ввода в элементах этого типа. |
horizontalVariantUssClassName |
.unity-base-slider--horizontal |
Имя USS-класса для элементов этого типа при горизонтальном отображении. |
verticalVariantUssClassName |
.unity-base-slider--vertical |
Имя USS-класса для элементов этого типа при вертикальном отображении. |
dragContainerUssClassName |
.unity-base-slider__drag-container |
Имя USS-класса для элементов-контейнеров в элементах этого типа. |
trackerUssClassName |
.unity-base-slider__tracker |
Имя USS-класса для элементов-трекеров в элементах этого типа. |
draggerUssClassName |
.unity-base-slider__dragger |
Имя USS-класса для элементов-ползунков в элементах этого типа. |
draggerBorderUssClassName |
.unity-base-slider__dragger-border |
Имя USS-класса для элемента рамки ползунка в элементах этого типа. |
fillUssClassName |
.unity-base-slider__fill |
Имя USS-класса для элемента заполнения в элементах этого типа. |
movableUssClassName |
.unity-base-slider--movable |
Имя USS-класса для ползунка, указывающее, что им в данный момент управляет NavigationMoveEvent. Когда слайдер обнаруживает события перемещения, выравниваемые с направлением слайдера, он настраивает значение слайдера. Если он обнаруживает событие подтверждения навигации, он удаляет стиль, в результате чего все события навигации возвращаются к своему поведение по умолчанию. Второе событие подтверждения навигации вновь применяет стиль к слайдеру и восстанавливает предыдущее настроенное поведение. |
ussClassName |
.unity-base-field |
Имя USS-класса для элементов этого типа. |
labelUssClassName |
.unity-base-field__label |
Имя USS-класса для меток в элементах этого типа. |
inputUssClassName |
.unity-base-field__input |
Имя USS-класса для элементов ввода в элементах этого типа. |
noLabelVariantUssClassName |
.unity-base-field--no-label |
Имя USS-класса для элементов этого типа, когда метка отсутствует. |
labelDraggerVariantUssClassName |
.unity-base-field__label--with-dragger |
Имя USS-класса для меток в элементах этого типа, когда к ним прикреплён ползунок перетаскивания. |
mixedValueLabelUssClassName |
.unity-base-field__label--mixed-value |
Имя USS-класса для элементов, отображающих смешанные значения |
alignedFieldUssClassName |
.unity-base-field__aligned |
Имя USS-класса для элементов, выровненных внутри элемента инспектора |
disabledUssClassName |
.unity-disabled |
Имя USS-класса для локально отключённых элементов. |
Вы также можете использовать раздел Соответствующие селекторы в отладчике Inspector или UI Toolkit, чтобы увидеть, какие селекторы USS влияют на компоненты VisualElement на каждом уровне его иерархии.