版本: Unity 6 (6000.0)
语言英语
  • C#

OverlayToolbar

UnityEditor.Overlays 类

/

继承自: UIElements.VisualElement

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。尽管我们无法接受所有提交内容,但我们会阅读用户提出的每项建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

描述

用于在 Overlay 中绘制的工具栏元素的基类。

将此类与 ICreateHorizontalToolbarICreateVerticalToolbar 一起使用,构建可以在工具栏中停靠的叠加层。

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元素内容区域的矩形,在元素的本地空间中。(只读)
customStyleVisualElement 的自定义样式属性访问器。(只读)
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通知数据绑定系统控件的属性已更改。