Unity3D :UXML 元素 DropdownField

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具链:NSDT简石数字孪生

UXML 元素 DropdownField

下拉字段允许用户从列表中选择一个值。单击控件时,它会打开一个抽屉,其中显示多个选项,允许用户选择一个选项。如果要始终显示所有选项,请使用单选按钮组。

响应用户操作

下拉字段响应更改事件。

您可以将 DropdownField 绑定到保存所选选项值的字符串变量。

在 UI 生成器中添加下拉列表字段的选项

若要为下拉列表字段添加选项,请在检查员
,在“选项”中输入以逗号分隔的选项。

要设置默认值,请在“下拉字段”的检查器中,输入“索引”中选项的编号顺序,从 开始。0

在 C# 脚本中创建下拉列表字段

以下 C# 代码片段创建一个包含三个选项的下拉列表字段。默认情况下,下拉字段选择第一个选项。

var dropdown = new DropdownField("Options", new List<string> { "Option 1", "Option 2", "Option 3" }, 0);
dropdown.RegisterValueChangedCallback(evt => Debug.Log(evt.newValue));
rootVisualElement.Add(dropdown);

更改下拉列表字段的样式

覆盖 USS 文件中的默认面板设置字段以更改 Unity 中下拉字段的样式:

  1. “层次结构”窗口中,选择用户界面
    文档 (.uxml)。
  2. 面板设置”设置为“面板设置”资源。如果您没有现有的面板设置资产,请按照对话框中的说明创建一个。
  3. 面板设置资源中,分配主题样式表。
  4. “项目”窗口中,选择您的 TSS 文件。
  5. 转到样式表,然后选择添加 (+) 按钮。
  6. 样式表设置为 USS 文件。

例子

学习如何使用DropdownField的最好方法是尝试一个例子。若要查看下拉列表字段示例,请在 Unity 中,选择“窗口> UI 工具包”>“示例”>“下拉列表字段”。

C# 基类和命名空间

C# 类:下拉列表字段
命名空间基类
PopupField_1UnityEngine.UIElements

继承的属性

此元素从其基类继承以下属性:

名字类型描述
binding-pathstring要绑定的目标属性的路径。
choicesstring要在弹出菜单中显示的选项列表。
focusableboolean如果元素可以聚焦,则为 True。
indexint弹出菜单中当前选定的索引。
labelstring表示将显示在字段旁边的标签的字符串。
tabindexint用于对焦点环中的可聚焦对象进行排序的整数。必须大于或等于零。

此元素还从可视元素继承以下属性:

名字类型描述
content-containerstring子元素被添加到其中,通常这与元素本身相同。
namestring此可视元素的名称。

使用此属性可以编写面向特定元素的 USS 选择器。标准做法是为元素指定一个唯一的名称。
picking-modeUIElements.PickingMode确定是否可以在鼠标事件或查询期间选取此元素。IPanel.Pick
stylestring引用此元素的样式对象。

包含从 USS 文件或以 C# 写入此对象的内联样式计算的数据。
tooltipstring用户将元素悬停一小段时间后要在信息框中显示的文本。
usage-hintsUIElements.UsageHints提示值的组合,用于指定 的高级预期使用模式。仅当 尚未成为 的一部分时,才能设置此属性。一旦 的一部分,此属性将变为有效的只读,并且尝试更改它将引发异常。适当的规范驱动系统根据预期的使用模式就如何处理或加速某些操作做出更好的决策。请注意,这些提示不会影响行为或视觉结果,而只会影响面板和其中元素的整体性能。建议始终考虑指定正确的 ,但请记住,在某些情况下(例如,由于目标平台上的硬件限制),某些可能会在内部被忽略。VisualElementVisualElementPanelPanelUsageHintsUsageHintsUsageHints
view-data-keystring用于视图数据持久性(即树展开状态、滚动位置、缩放级别)。

这是用于从视图数据存储保存/加载视图数据的键。不设置此项将禁用此 的持久性。
VisualElement

美国航空母舰类

下表列出了所有 C# 公共属性名称及其相关的 USS 选择器。

C# 属性美国航空母舰选择器描述
ussClassName.unity-popup-field此类型元素的 USS 类名。
labelUssClassName.unity-popup-field__label此类型元素中标签的 USS 类名。
inputUssClassName.unity-popup-field__input此类型元素中输入元素的 USS 类名。
ussClassName.unity-base-popup-field此类型元素的 USS 类名。
textUssClassName.unity-base-popup-field__text此类型元素中文本元素的 USS 类名。
arrowUssClassName.unity-base-popup-field__arrow此类型元素中箭头指示器的 USS 类名。
labelUssClassName.unity-base-popup-field__label此类型元素中标签的 USS 类名。
inputUssClassName.unity-base-popup-field__input此类型元素中输入元素的 USS 类名。
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 类名。

其他资源

  • 更改事件
  • 单选按钮组


3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :UXML元素DoubleField (mvrlink.com)

下一篇:Unity3D :UXML 元素 EnumField (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号