前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >十、编辑器开发之Button

十、编辑器开发之Button

作者头像
CoderZ
发布2022-08-29 15:38:35
4390
发布2022-08-29 15:38:35
举报
文章被收录于专栏:用户10004205的专栏

Button按钮的绘制需要用到GUILayout.Button或者EditorGUILayout.Button方法。

一、类型

按钮的绘制有很多种:

1.String类型Button:

代码语言:javascript
复制
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
    public override void OnInspectorGUI()
    {
        GUILayout.Button("按钮");
    }
}

2.Icon图标类型Button:

代码语言:javascript
复制
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
    public override void OnInspectorGUI()
    {
        //用到的是Unity内置的播放样式的图标
        GUILayout.Button(EditorGUIUtility.IconContent("PlayButton"));
    }
}

3.String + Icon类型图标:

代码语言:javascript
复制
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
    public override void OnInspectorGUI()
    {
        //用到的是Unity内置的播放样式的图标
        GUILayout.Button(EditorGUIUtility.TrTextContent("播放", string.Empty, "PlayButton"));
    }
}

二、样式

Button的样式可以多种多样,下面列举几种样式:

代码语言:javascript
复制
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
    public override void OnInspectorGUI()
    {
        GUILayout.Button("按钮1", "ToolbarButton");
        GUILayout.Button("按钮2", "DropDownButton");
        GUILayout.Button("按钮3", "LargeButton");
        GUILayout.Button("按钮4", "IN EditColliderButton");
    }
}

更多样式的预览方法可以查看前面的文章-编辑器开发之GUIStyle

三、大小

可以通过GUILayout.Width及GUILayout.Height来控制大小:

代码语言:javascript
复制
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
    public override void OnInspectorGUI()
    {
        GUILayout.Button("按钮1", GUILayout.Width(40));
        GUILayout.Button("按钮2", GUILayout.Width(50));
        GUILayout.Button("按钮3", GUILayout.Width(60));
        GUILayout.Button("按钮4", GUILayout.Width(70), GUILayout.Height(40));
    }
}

四、交互

GUILayout.Button()方法的返回值表示该按钮是否被点击,所以只需要if判断:

代码语言:javascript
复制
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
    public override void OnInspectorGUI()
    {
        if (GUILayout.Button("按钮"))
        {
            Debug.Log("点击了按钮.");
        }
    }
}

点击按钮即可执行if代码块中的逻辑。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 当代野生程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档