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

ICreateToolbar.toolbarElements

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们不能接受所有提交,但我们会阅读用户提出的每项建议的更改,并在适用时进行更新。

关闭

提交失败

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

关闭

取消

public IEnumerable<string> toolbarElements;

说明

叠加层处于工具栏布局中时要显示的toolbarElements的 ID 列表。

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();
    }
}