You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity Editor中添加类似Unity Services的按钮?

实现Unity编辑器顶部工具栏自定义按钮(类似Services按钮)

你要的这种位于编辑器主视图顶部工具栏的按钮,可以通过Unity的EditorToolbar API实现,该API从Unity 2021.1版本开始提供,以下是具体实现步骤:

实现步骤

  1. 在项目中创建Editor文件夹(编辑器代码必须放在此目录下,否则不会生效)
  2. 在该文件夹下创建C#脚本,比如命名为CustomToolbarButton.cs,写入以下代码:
using UnityEditor;
using UnityEngine.UIElements;

[EditorToolbar]
public class CustomToolbarButton : EditorToolbarElement
{
    // 控制按钮在工具栏的位置,数值越大越靠右(默认Services按钮顺序约为50)
    private const int ToolbarOrder = 100;

    public CustomToolbarButton()
    {
        // 创建工具栏按钮,指定点击回调和显示文本
        var customButton = new ToolbarButton(OnButtonTriggered)
        {
            text = "我的自定义按钮",
            tooltip = "点击执行自定义操作"
        };

        // 可选:给按钮设置图标
        // customButton.icon = EditorGUIUtility.IconContent("d_ServiceIcon").image;

        Add(customButton);
    }

    // 按钮点击后的逻辑
    private void OnButtonTriggered()
    {
        Debug.Log("自定义工具栏按钮被点击!");
        // 这里可以添加你的业务逻辑,比如打开自定义窗口、执行批量处理等
    }

    // 指定按钮显示在SceneView和GameView的顶部工具栏
    [EditorToolbarElement(id: "Custom.Toolbar.Button", typeof(SceneView))]
    [EditorToolbarElement(id: "Custom.Toolbar.Button", typeof(GameView))]
    public class CustomToolbarButtonInstance : CustomToolbarButton
    {
        public CustomToolbarButtonInstance() : base()
        {
            SetPosition(ToolbarZone.TopToolbar, ToolbarOrder);
        }
    }
}

关键说明

  • 该API仅支持Unity 2021.1及以上版本,如果你使用更早版本,不推荐用反射修改工具栏(容易因版本更新失效)
  • 通过ToolbarOrder可以调整按钮在工具栏的位置,数值越大越靠右
  • 可以通过USS样式表自定义按钮外观,或者设置icon属性替换为自定义图标
  • 代码中指定了按钮在SceneView和GameView都显示,你可以根据需求添加或移除视图类型

内容的提问来源于stack exchange,提问作者Adnan Faize

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:55:08