为工具栏创建一个面包屑 UI 元素,以帮助用户浏览层次结构。例如,视觉脚本面包屑工具栏使探索脚本变得更容易,因为用户可以通过点击面包屑项目跳转到脚本的任何级别。有关更多信息,请参阅 UXML 元素 ToolbarBreadcrumbs.
表示面包屑轨迹,以方便在层次结构中相关项目之间进行导航。
using UnityEngine; using UnityEngine.UIElements; using UnityEditor.UIElements;
public class CreateBreadcrumbsHelper { ToolbarBreadcrumbs breadcrumbs; public void CreateBreadcrumbs(VisualElement root) { var toolbar = new Toolbar(); root.Add(toolbar); breadcrumbs = new ToolbarBreadcrumbs(); toolbar.Add(breadcrumbs); breadcrumbs.PushItem("myItemGrandParent", GoToRoot); breadcrumbs.PushItem("myItemParent", () => breadcrumbs.PopItem()); breadcrumbs.PushItem("myItem"); }
void GoToRoot() { while (breadcrumbs.childCount > 1) breadcrumbs.PopItem(); } }
firstItemClassName | 面包屑工具栏中第一个元素或项目的 Unity 样式表 (USS) 类。 |
itemClassName | 面包屑工具栏中各个项目的 Unity 样式表 (USS) 类。 |
ussClassName | 主 ToolbarBreadcrumbs 容器的 Unity 样式表 (USS) 类。 |
ToolbarBreadcrumbs | 为工具栏创建一个面包屑 UI 元素,以帮助用户浏览层次结构。 |
disabledUssClassName | 本地禁用元素的 USS 类名。 |
canGrabFocus | 如果元素可以聚焦,则返回 true。 |
delegatesFocus | 元素是否应将焦点委托给其子元素。 |
focusable | 如果元素可以聚焦,则为 true。 |
focusController | 返回此元素的焦点控制器。 |
tabIndex | 用于在焦点环中对可聚焦项进行排序的整数。必须大于或等于零。 |
childCount | 此对象 contentContainer 中的子元素数量。 |
contentContainer | 子元素添加到其中,通常与元素本身相同。 |
contentRect | 元素内容区域的矩形,位于元素的本地空间中。(只读) |
customStyle | VisualElement 的自定义样式属性访问器(只读)。 |
dataSource | 将数据源分配给此 VisualElement,它会覆盖任何继承的数据源。此数据源由所有子元素继承。 |
dataSourcePath | 从数据源到值的路径。 |
dataSourceType | 可以分配给此 VisualElement 的数据源的可能类型。此信息仅供 UI Builder 使用,作为提示,在设计时无法指定有效数据源时,为数据源路径字段提供一些完成。 |
disablePlayModeTint | 默认情况下应用播放模式色调,除非将此设置为 true。它按层次结构应用于此 VisualElement 及其在编辑器面板上存在的所有子元素。 |
enabledInHierarchy | 如果 VisualElement 在其自己的层次结构中启用,则返回 true。 |
enabledSelf | 如果 VisualElement 在本地启用,则返回 true。 |
experimental | 返回 UIElements 实验性接口。 |
generateVisualContent | 用于生成视觉元素的视觉内容的委托函数。 |
hierarchy | 访问此元素的物理层次结构 |
languageDirection | 指示元素文本的方向。该值将传播到元素的子元素。 |
layout | VisualElement 相对于其父元素的位置和大小,由布局系统计算。(只读) |
localBound | 返回一个 Rect,表示应用变换后但应用布局平移之前,轴对齐包围盒 (AABB)。 |
name | 此 VisualElement 的名称。 |
paddingRect | 元素填充区域的矩形,位于元素的本地空间中。 |
panel | 附加此 VisualElement 的面板。 |
parent | 此 VisualElement 的父元素。 |
pickingMode | 确定此元素是否可以在鼠标事件或 IPanel.Pick 查询期间被选中。 |
resolvedStyle | 视觉元素的最终渲染样式值,因为它在当前帧中渲染。(只读) |
scaledPixelsPerPoint | 返回来自面板的结果缩放比例,该比例考虑了屏幕 DPI 和可自定义的缩放比例因子,但不考虑元素及其祖先的变换比例。请参阅 Panel.scaledPixelsPerPoint。这应该只在面板的一部分元素上调用。 |
schedule | 检索此 VisualElement 的 IVisualElementScheduler |
style | 设置 VisualElement 上的样式值。 |
styleSheets | 返回一个 VisualElementStyleSheetSet,它操作附加到此元素的样式表。 |
this[int] | 检索特定索引处的子元素。 |
tooltip | 在用户将鼠标悬停在元素上很短时间后,在信息框内显示的文本。这仅在编辑器 UI 中受支持。 |
transform | 返回此 VisualElement 的变换对象。ITransform |
usageHints | 一组提示值,指定 VisualElement 的高级预期使用模式。此属性只能在 VisualElement 尚未成为 Panel 的一部分时设置。一旦成为 Panel 的一部分,此属性将实际上变为只读,尝试更改它将引发异常。正确使用提示的规范驱动系统在处理或加速某些操作方面做出更好的决策,这些决策基于预期的使用模式。请注意,这些提示不会影响行为或视觉结果,只会影响面板及其内部元素的整体性能。建议始终考虑指定适当的使用提示,但请记住,某些使用提示可能在某些条件下被内部忽略(例如,由于目标平台上的硬件限制)。 |
userData | 此属性可用于将应用程序特定的用户数据与此 VisualElement 关联。 |
viewDataKey | 用于视图数据持久性,例如树展开状态、滚动位置或缩放级别。 |
visible | 指示此元素是否应渲染。 |
visualTreeAssetSource | 存储资产引用,如果生成的元素是从 VisualTreeAsset 克隆的。 |
worldBound | 返回一个 Rect,表示应用世界变换后的轴对齐包围盒 (AABB)。 |
worldTransform | 返回一个矩阵,它累积以下操作(按顺序):-局部缩放 -局部旋转 -局部平移 -布局平移 -父世界变换(递归定义 - 在没有父元素时考虑恒等式) |
HasBubbleUpHandlers | 如果事件传播 BubbleUp 阶段的事件处理程序已附加到此对象,则返回 true。 |
HasTrickleDownHandlers | 如果事件处理程序(针对事件传播 TrickleDown 阶段)已附加到此对象,则返回 true。 |
RegisterCallback | 将事件处理程序添加到实例。如果事件处理程序已为相同阶段(TrickleDown 或 BubbleUp)注册,则此方法无效。 |
RegisterCallbackOnce | 将事件处理程序添加到实例。如果事件处理程序已为相同阶段(TrickleDown 或 BubbleUp)注册,则此方法无效。事件处理程序在被准确调用一次后自动注销。 |
UnregisterCallback | 从实例中删除回调。 |
Blur | 告诉元素释放焦点。 |
Focus | 尝试将焦点赋予此元素。 |
Add | 将元素添加到此元素的 contentContainer |
AddToClassList | 将类添加到元素的类列表中,以便从 USS 分配样式。请注意,类名区分大小写。 |
BringToFront | 将此元素移至其父元素子元素列表的末尾。该元素在视觉上将位于任何重叠的兄弟元素的前面。 |
Children | 返回来自其 contentContainer 的元素。 |
ClassListContains | 在该元素的类列表中搜索类。 |
Clear | 从此元素的 contentContainer 中删除所有子元素 |
ClearBinding | 从元素中删除绑定。 |
ClearBindings | 从元素中删除所有绑定。 |
ClearClassList | 从该元素的类列表中删除所有类。AddToClassList |
Contains | 检查此元素是否是指定子元素的祖先。 |
ContainsPoint | 检查指定点是否与该 VisualElement 的布局相交。 |
ElementAt | 检索特定索引处的子元素。 |
EnableInClassList | 启用或禁用具有给定名称的类。 |
FindAncestorUserData | 向上搜索此 VisualElement 的层次结构,并检索存储的 userData(如果有)。 |
FindCommonAncestor | 在 VisualTree 层次结构中查找两个 VisualElement 之间的最低共同祖先。 |
GetBinding | 获取为提供的目标属性提供的绑定实例。 |
GetBindingInfos | 获取当前元素的所有绑定的信息。 |
GetClasses | 检索该元素的类。 |
GetDataSourceContext | 查询绑定对象的 dataSource 和 dataSourcePath。 |
GetFirstAncestorOfType | 向上遍历层次结构(从该元素的父元素开始),并返回此类型的第一个 VisualElement |
GetFirstOfType | 向上遍历层次结构(从该元素开始),并返回此类型的第一个 VisualElement |
GetHierarchicalDataSourceContext | 查询从层次结构继承的 dataSource 和 dataSourcePath。 |
HasBinding | 允许知道目标属性是否与其关联的绑定相关联。 |
IndexOf | 检索指定 VisualElement 的子元素索引。 |
Insert | 将元素插入此元素的 contentContainer |
MarkDirtyRepaint | 在下一帧触发 VisualElement 的重新绘制。当发生需要重新绘制的更改时(例如,当 UIElements.BaseField_1.value 更改或 Label 中的文本更改时),此方法会在内部调用。如果您正在实现自定义控件,则可以调用此方法以在发生需要重新绘制的更改时触发重新绘制,例如,当使用 generateVisualContent 渲染网格且网格数据现在已更改时。 |
PlaceBehind | 将此元素放在其父元素子元素列表中的兄弟元素之前。如果元素和兄弟元素位置重叠,则该元素将在视觉上位于其兄弟元素的后面。 |
PlaceInFront | 将此元素放在其父元素子元素列表中的兄弟元素之后。如果元素和兄弟元素位置重叠,则该元素将在视觉上位于其兄弟元素的前面。 |
Remove | 从 contentContainer 层级结构中移除此子元素。 |
RemoveAt | 从此元素的 contentContainer 中移除位于此位置的子元素。 |
RemoveFromClassList | 从元素的类列表中移除一个类。 |
RemoveFromHierarchy | 从其父级层级结构中移除此元素。 |
SendEvent | 向事件处理程序发送事件。 |
SendToBack | 将此元素发送到其父级子元素列表的开头。该元素在视觉上将位于任何重叠的同级元素之后。 |
SetBinding | 在目标和源之间分配绑定。 |
SetEnabled | 更改 VisualElement 的启用状态。禁用的 VisualElement 不会接收大多数事件。 |
Sort | 重新排序来自此 VisualElement contentContainer 的子元素。 |
ToggleInClassList | 在将给定类名添加到类列表和从类列表中移除给定类名之间切换。 |
TryGetBinding | 获取为提供的目标属性提供的绑定实例。 |
TryGetDataSourceContext | 查询绑定对象的 dataSource 和 dataSourcePath。 |
TryGetLastBindingToSourceResult | 返回从 UI 到数据源的绑定对象的最后一个 BindingResult。 |
TryGetLastBindingToUIResult | 返回从数据源到 UI 的绑定对象的最后一个 BindingResult。 |
HandleEventBubbleUp | 在此元素的 BubbleUp 回调之前,立即在此元素的 BubbleUp 阶段执行逻辑。调用 StopPropagation 将阻止在此传播路径上的此方法的进一步调用。 |
HandleEventTrickleDown | 在此元素的 TrickleDown 回调之后,立即在此元素的 TrickleDown 阶段执行逻辑。调用 StopPropagation 将阻止在此传播路径上的此方法的进一步调用。 |
NotifyPropertyChanged | 通知数据绑定系统控件的属性已更改。 |