Unity3D :UXML 元素滚动视图
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
UXML 元素滚动视图
滚动视图在可滚动区域内显示其内容。将内容添加到滚动视图时,内容将添加到滚动视图的内容容器() 中。#unity-content-container
管理滚动条可见性
您可以指定滚动条移动的方向、水平滚动条还是垂直滚动条可见,并控制滚动条的速度。
设置中的滚动条移动方向用户界面
生成器,在检查员
窗口中,为模式选择以下选项之一:
- 垂直(默认)
- 水平
- 垂直和水平
若要在 UI 生成器中设置滚动条的可见性,请在 ScrollView 的“检查器”窗口中,为“水平滚动条可见性”或“垂直滚动条可见性”选择以下选项之一:
- 自动(默认)
- 始终可见
- 隐藏
控制滚动速度
要控制滚动视图的滚动速度,请覆盖 USS 内置变量。默认值为。例如:--unity-metrics-single_line-height18px
:root {
--unity-metrics-single_line-height: 500px;
}
重要:如果使用 without 参数或 时,它会添加一个阻止行高传播的 。请改用。CloneTree()Instantiate()TemplateContainerCloneTree(root)
在滚动视图中包装元素
你可以包装视觉元素
,以便元素在一行中显示。如果行已满,则元素将继续显示在下一行。
若要在 ScrollView 内包装可视元素,请将 ScrollView 的内容容器弹性方向设置为“行”,将“弹性换行”设置为“环绕”。
在USS中:
.unity-scroll-view__content-container {
flex-direction: row;
flex-wrap: wrap;
}
在 C# 中:
scrollview.contentContainer.style.flexDirection = FlexDirection.Row;
scrollview.contentContainer.style.flexWrap = Wrap.Wrap;
在滚动视图中自动换行元素的文本
若要将元素的文本换行在 ScrollView 内,例如,将 Label 元素的文本换行,请执行以下操作:
- 使用以下任一方法设置 Label 元素的样式:
- 在 UI 生成器中,在标签的“检查器”窗口中,选择“文本”>换行>正常”。
- 将样式应用于 USS、UXML 或 C# 中的 Label 元素。
white-space: normal;
- 创建一个可视元素作为 ScrollView 中的容器。ScrollView 中的原始容器元素未设置边界(大小无限大),因此文本无法正确换行。此容器可视元素为要在其中换行的文本提供有限的大小。
- 将标签添加到可视元素容器。
例子
- 在滚动视图中环绕内容:此示例演示如何使用样式在滚动视图中环绕内容。
C# 类和命名空间
C# 类:ScrollView
命名空间:基类:视觉元素UnityEngine.UIElements
成员属性
此元素具有以下成员属性:
名字 | 类型 | 描述 |
---|---|---|
elasticity | float | 当用户尝试滚动超过滚动视图的边界时要使用的弹性量。 仅当设置为“弹性”时才使用弹性。 touchScrollBehavior |
horizontal-page-size | float | 此属性控制水平滚动条的滚动速度。 |
horizontal-scroller-visibility | UIElements.ScrollerVisibility | 指定水平滚动条是否可见。 |
mode | UIElements.ScrollViewMode | 控制滚动视图允许用户滚动内容的方式。 缺省值为 。写入此属性将根据指定的值 修改 ScrollView 的类列表。当值更改时,将删除与旧值匹配的类列表,并添加与新值匹配的类列表。 ScrollViewMode ScrollViewMode.Vertical ScrollViewMode |
scroll-deceleration-rate | float | 控制用户使用触摸交互滚动后滚动移动减慢的速度。 减速率是每秒减速。值为 0.5 每秒的速度减半。值为 0 表示立即停止滚动。 |
vertical-page-size | float | 此属性控制垂直滚动程序的滚动速度。 |
vertical-scroller-visibility | UIElements.ScrollerVisibility | 指定垂直滚动条是否可见。 |
继承的属性
此元素从其基类继承以下属性:
名字 | 类型 | 描述 |
---|---|---|
focusable | boolean | 如果元素可以聚焦,则为 True。 |
tabindex | int | 用于对焦点环中的可聚焦对象进行排序的整数。必须大于或等于零。 |
此元素还从可视元素
继承以下属性:
名字 | 类型 | 描述 |
---|---|---|
content-container | string | 子元素被添加到其中,通常这与元素本身相同。 |
name | string | 此可视元素的名称。 使用此属性可以编写面向特定元素的 USS 选择器。标准做法是为元素指定一个唯一的名称。 |
picking-mode | UIElements.PickingMode | 确定是否可以在鼠标事件或查询期间选取此元素。IPanel.Pick |
style | string | 引用此元素的样式对象。 包含从 USS 文件或以 C# 写入此对象的内联样式计算的数据。 |
tooltip | string | 用户将元素悬停一小段时间后要在信息框中显示的文本。 |
usage-hints | UIElements.UsageHints | 提示值的组合,用于指定 的高级预期使用模式。仅当 尚未成为 的一部分时,才能设置此属性。一旦 的一部分,此属性将变为有效的只读,并且尝试更改它将引发异常。适当的规范驱动系统根据预期的使用模式就如何处理或加速某些操作做出更好的决策。请注意,这些提示不会影响行为或视觉结果,而只会影响面板和其中元素的整体性能。建议始终考虑指定正确的 ,但请记住,在某些情况下(例如,由于目标平台上的硬件限制),某些可能会在内部被忽略。VisualElement VisualElement Panel Panel UsageHints UsageHints UsageHints |
view-data-key | string | 用于视图数据持久性(即树展开状态、滚动位置、缩放级别)。 这是用于从视图数据存储保存/加载视图数据的键。不设置此项将禁用此 的持久性。 VisualElement |
美国航空母舰类
下表列出了所有 C# 公共属性名称及其相关的 USS 选择器。
C# 属性 | 美国航空母舰选择器 | 描述 |
---|---|---|
ussClassName | .unity-scroll-view | 此类型元素的 USS 类名。 |
viewportUssClassName | .unity-scroll-view__content-viewport | 此类型元素中视区元素的 USS 类名。 |
horizontalVariantViewportUssClassName | .unity-scroll-view__content-viewport--horizontal | 视口处于水平模式时添加的 USS 类名。ScrollViewMode.Horizontal |
verticalVariantViewportUssClassName | .unity-scroll-view__content-viewport--vertical | 视口处于垂直模式时添加的 USS 类名。ScrollViewMode.Vertical |
verticalHorizontalVariantViewportUssClassName | .unity-scroll-view__content-viewport--vertical-horizontal | 视区同时处于水平和垂直模式时添加的 USS 类名。ScrollViewMode.VerticalAndHorizontal |
contentAndVerticalScrollUssClassName | .unity-scroll-view__content-and-vertical-scroll-container | 此类型元素中的内容元素的 USS 类名。 |
contentUssClassName | .unity-scroll-view__content-container | 此类型元素中的内容元素的 USS 类名。 |
horizontalVariantContentUssClassName | .unity-scroll-view__content-container--horizontal | 当内容容器处于水平模式时添加的 USS 类名。ScrollViewMode.Horizontal |
verticalVariantContentUssClassName | .unity-scroll-view__content-container--vertical | 当内容容器处于垂直模式时添加的 USS 类名。ScrollViewMode.Vertical |
verticalHorizontalVariantContentUssClassName | .unity-scroll-view__content-container--vertical-horizontal | 当内容容器同时处于水平和垂直模式时添加的 USS 类名。ScrollViewMode.VerticalAndHorizontal |
hScrollerUssClassName | .unity-scroll-view__horizontal-scroller | 此类型元素中水平滚动条的 USS 类名。 |
vScrollerUssClassName | .unity-scroll-view__vertical-scroller | 此类型元素中垂直滚动条的 USS 类名。 |
horizontalVariantUssClassName | .unity-scroll-view--horizontal | 当滚动视图处于水平模式时添加的 USS 类名。ScrollViewMode.Horizontal |
verticalVariantUssClassName | .unity-scroll-view--vertical | 在滚动视图处于垂直模式时添加的 USS 类名。ScrollViewMode.Vertical |
verticalHorizontalVariantUssClassName | .unity-scroll-view--vertical-horizontal | 当滚动视图同时处于水平和垂直模式时添加的 USS 类名。ScrollViewMode.VerticalAndHorizontal |
scrollVariantUssClassName | .unity-scroll-view--scroll | |
disabledUssClassName | .unity-disabled | 本地禁用元素的 USS 类名。 |
您还可以使用检查器中的“匹配选择器”部分或 UI 工具包调试器来查看哪些 USS 选择器在其层次结构的每个级别影响 的组件。VisualElement
由3D建模学习工作室整理翻译,转载请注明出处!