用于在 Overlay 中绘制的工具栏元素的基类。
将此类与 ICreateHorizontalToolbar 和 ICreateVerticalToolbar 一起使用,构建可以在工具栏中停靠的叠加层。
using System.Collections.Generic; using UnityEditor; using UnityEditor.Overlays; using UnityEditor.Toolbars; using UnityEngine; using UnityEngine.UIElements; [Overlay(typeof(SceneView), "My Toolbar Overlay")] class MyOverlay : Overlay, ICreateToolbar { public override VisualElement CreatePanelContent() { return new Label("I'm the content shown in panel mode!"); } public IEnumerable<string> toolbarElements { get { yield return MyToolbarItem.id; yield return SomeOtherToolbarItem.id; } } } [EditorToolbarElement(id, typeof(SceneView))] class SomeOtherToolbarItem : EditorToolbarToggle { public const string id = "SomeOtherToolbarItem"; public SomeOtherToolbarItem() { icon = EditorGUIUtility.FindTexture("CustomTool"); } } // Example toolbar element with multiple controls [EditorToolbarElement(id, typeof(SceneView))] class MyToolbarItem : OverlayToolbar { public const string id = "MyToolbarItem"; public MyToolbarItem() { var icon = AssetDatabase.LoadAssetAtPath<Texture2D>("MyIcon"); Add(new EditorToolbarButton(icon, () => { Debug.Log("Hello!"); })); Add(new EditorToolbarButton(icon, () => { Debug.Log("Hello again!"); })); SetupChildrenAsButtonStrip(); } }
OverlayToolbar | 创建一个新的 OverlayToolbar。 |
SetupChildrenAsButtonStrip | 使用此方法将按钮条样式应用于此 VisualElement 的内容。 |
disabledUssClassName | 本地禁用元素的 USS 类名。 |
canGrabFocus | 如果元素可以获得焦点,则返回 true。 |
delegatesFocus | 元素是否应该将焦点委派给其子元素。 |
focusable | 如果元素可以获得焦点,则为 true。 |
focusController | 返回此元素的焦点控制器。 |
tabIndex | 用于在焦点环中对可获得焦点的元素进行排序的整数。必须大于或等于零。 |
childCount | 此对象 contentContainer 中子元素的数量。 |
contentContainer | 子元素被添加到其中,通常与元素本身相同。 |
contentRect | 元素内容区域的矩形,在元素的本地空间中。(只读) |
customStyle | VisualElement 的自定义样式属性访问器。(只读) |
dataSource | 将数据源分配给此 VisualElement,它会覆盖任何继承的数据源。此数据源由所有子元素继承。 |
dataSourcePath | 从数据源到值的路径。 |
dataSourceType | 可分配给此 VisualElement 的数据源的可能类型。此信息仅由 UI 生成器使用,作为提示,以便在设计时无法指定有效数据源时为数据源路径字段提供一些完成。 |
disablePlayModeTint | 默认情况下会应用播放模式色调,除非此设置为 true。它会分层应用于此 VisualElement 以及位于编辑器面板上的所有子元素。 |
enabledInHierarchy | 如果 VisualElement 在其自身层次结构中启用,则返回 true。 |
enabledSelf | 如果 VisualElement 在本地启用,则返回 true。 |
experimental | 返回 UIElements 实验性接口。 |
generateVisualContent | 委托函数,用于生成视觉元素的视觉内容。 |
hierarchy | 访问此元素的物理层次结构 |
languageDirection | 指示元素文本的方向性。该值将传播到元素的子元素。 |
layout | 相对于其父元素的 VisualElement 的位置和大小,由布局系统计算。(只读) |
localBound | 返回一个 Rect,表示在应用变换后但在应用布局平移之前应用 Axis-aligned Bounding Box (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 尚未成为面板的一部分时设置。一旦成为面板的一部分,此属性将变得实际上只读,尝试更改它将抛出异常。正确 UsageHints 的规范会驱动系统做出更好的决策,了解如何根据预期使用模式来处理或加速某些操作。请注意,这些提示不会影响行为或视觉结果,而只会影响面板及其内部元素的整体性能。建议始终考虑指定正确的 UsageHints,但请记住,在某些情况下,某些 UsageHints 可能会被内部忽略(例如,由于目标平台上的硬件限制)。 |
userData | 此属性可用于将应用程序特定的用户数据与此 VisualElement 关联。 |
viewDataKey | 用于视图数据持久性,例如树展开状态、滚动位置或缩放级别。 |
visible | 指示此元素是否应渲染。 |
visualTreeAssetSource | 存储资产引用,如果生成的元素是从 VisualTreeAsset 克隆的。 |
worldBound | 返回一个 Rect,表示在应用世界变换后应用 Axis-aligned Bounding Box (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 | 在从此元素的父元素开始的层次结构中向上搜索并检索存储的 userData,如果找到的话。 |
FindCommonAncestor | 查找 VisualTree 层次结构中两个 VisualElement 之间的最低公共祖先。 |
GetBinding | 获取提供目标属性的绑定的实例。 |
GetBindingInfos | 获取有关当前元素的所有绑定的信息。 |
GetClasses | 检索此元素的类。 |
GetDataSourceContext | 查询绑定的数据源和 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 | 查询绑定的数据源和 dataSourcePath。 |
TryGetLastBindingToSourceResult | 返回从 UI 到数据源的绑定对象的最后一个 BindingResult。 |
TryGetLastBindingToUIResult | 返回从数据源到 UI 的绑定对象的最后一个 BindingResult。 |
HandleEventBubbleUp | 在 BubbleUp 阶段在此元素上执行逻辑,紧接在此元素的 BubbleUp 回调之前。调用 StopPropagation 将阻止沿传播路径进一步调用此方法。 |
HandleEventTrickleDown | 在 TrickleDown 阶段在此元素上执行逻辑,紧接在此元素的 TrickleDown 回调之后。调用 StopPropagation 将阻止沿传播路径进一步调用此方法。 |
NotifyPropertyChanged | 通知数据绑定系统控件的属性已更改。 |