Unity3D :UXML 元素折叠

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

UXML 元素折叠

折叠是用户界面
.折叠页会在您单击其标题时隐藏或显示它所包含的元素。

创建折叠页

折叠具有以下元素:

  • 标签:可用作折叠页名称的标签
  • 切换:单击切换开关以展开或折叠容器子元素。它的样式看起来像箭头,而不是默认复选框。当容器折叠时,箭头指向右。展开容器时,箭头指向下方。
  • 容器:容器包含视觉元素
    要在切换折叠时显示或隐藏。

您可以将元素添加到折叠的容器中,显示或隐藏功能会自动工作。

以下 UI 文档创建一个折叠,其容器中有两个按钮。当您切换折叠时,这两个按钮显示或隐藏。

<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
    <ui:Foldout text="Foldout" name="MyFoldout" value="true">
        <ui:Button text="First item" />
        <ui:Button text="Second item" />
    </ui:Foldout>
</ui:UXML>

响应用户操作

折叠及其切换子元素响应更改事件。切换隐藏或显示折叠容器。

您可以将 Foldout 绑定到布尔变量或通过 INotifyValueChanged<bool> 接口访问其值。

例子

以下 C# 代码段创建一个折叠,并检查折叠是否展开:

// Create a new foldout, add two elements to it and add it to the container
var cSharpFoldout = new Foldout {text = "Elements"};
cSharpFoldout.Add(new Label("Indented Label"));
cSharpFoldout.Add(new Slider("Indented Slider", 0, 100));
container.Add(cSharpFoldout);

cSharpFoldout.RegisterValueChangedCallback(e =>
{
    // Check whether the foldout is expanded
    if (cSharpFoldout.value)
    {
        Debug.Log("Foldout is expanded");
    }
    else
    {
        Debug.Log("Foldout is collapsed");
    }
});

C# 基类和命名空间

C# 类:折叠
命名空间基类
可绑定元素UnityEngine.UIElements

成员属性

此元素具有以下成员属性:

名字类型描述
textstring这是切换标签的文本。
valueboolean这是折叠切换的状态。如果 已打开且其内容可见,则为 true;如果 Foldout 已关闭且其内容处于隐藏状态,则为 false。Foldout

继承的属性

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

名字类型描述
binding-pathstring要绑定的目标属性的路径。
focusableboolean如果元素可以聚焦,则为 True。
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-foldout折叠元素的 USS 类名称。

Unity 将此 USS 类添加到 .应用于此类的任何样式都会影响可视化树中样式表旁边或下方的每个 Foldout。
Foldout
toggleUssClassName.unity-foldout__toggle折叠元素中切换子元素的 USS 类名。

Unity 将此 USS 类添加到每个 .应用于此类的任何样式都会影响可视化树中样式表旁边或下方的每个 Toggle 子元素。
ToggleFoldout
contentUssClassName.unity-foldout__content折叠中内容元素的 USS 类名。

Unity 将此 USS 类添加到包含要显示或隐藏的元素的 中。应用于此类的任何样式都会影响可视化树中样式表旁边或下方的每个折叠容器。
VisualElement
inputUssClassName.unity-foldout__input折叠中标签元素的 USS 类名。

Unity 将此 USS 类添加到包含输入元素的 中。应用于此类的任何样式都会影响可视化树中样式表旁边或下方的每个折叠容器。
VisualElementToggle
checkmarkUssClassName.unity-foldout__checkmark折叠中标签元素的 USS 类名。

Unity 将此 USS 类添加到表示每个 .应用于此类的任何样式都会影响可视化树中样式表旁边或下方的每个折叠容器。
VisualElementToggleFoldout
textUssClassName.unity-foldout__text折叠中标签元素的 USS 类名。

Unity 将此 USS 类添加到每个 .应用于此类的任何样式都会影响可视化树中样式表旁边或下方的每个折叠容器。
LabelToggleFoldout
disabledUssClassName.unity-disabled本地禁用元素的 USS 类名。

您还可以使用检查器中的“匹配选择器”部分或 UI 工具包调试器来查看哪些 USS 选择器在其层次结构的每个级别影响 的组件。VisualElement

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

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

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

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