Unity 编辑器扩展(九)EditorGUI 和 EditorGUILayout

博客主要介绍了EditorGUI和EditorGUILayout的布局差异,指出EditorGUI是固定布局,而EditorGUILayout是自动布局,为相关开发提供了布局方面的关键信息。

区分:EditorGUI为固定布局,EditorGUILayout为自动布局

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

public class TestEditor : EditorWindow
{
    [MenuItem("MyMenu/TestItem")]

    static void Test()
    {
        TestEditor testEditor = (TestEditor)EditorWindow.GetWindow(typeof(TestEditor));
        testEditor.Show();
    }

    float f1;
    float f2;
    string s1;
    string s2;

    void OnGUI()
    {
        if (GUILayout.Button("关闭"))
        {
            this.Close();
        }

        EditorGUI.BeginDisabledGroup(true);

        f1 = EditorGUILayout.FloatField("单精度1", f1);
        s1 = EditorGUILayout.TextField("字符串1", s1);

        EditorGUI.EndDisabledGroup();

        f2 = EditorGUILayout.FloatField("单精度2", f2);
        s2 = EditorGUILayout.TextField("字符串2", s2);
    }
}

 

 

Unity编辑器扩展是指通过自定义脚本来扩展Unity编辑器的功能界面。在Unity中,可以使用编辑器扩展来创建自定义的面板、工具栏、菜单项等,以便更好地支持开发者的工作流程需求。 在编辑器扩展中,有几个重要的类需要了解。首先是Editor类,它是所有自定义编辑器的基类,通过继承Editor类可以创建自定义的Inspector面板,用于编辑特定组件的属性。其次是EditorWindow类,它是创建自定义窗口的基类,可以用于创建独立的编辑器工具窗口。然后是EditorGUIEditorGUILayout类,它们用于在自定义面板中创建UI元素,如按钮、文本框、滑动条等。这两个类的区别在于EditorGUI需要手动计算UI元素的位置大小,而EditorGUILayout会自动进行排版计算坐标。此外,还有一些其他常用的类,如GUI、GUILayout、EditorGUIUtility、EditorUtility、AssetDatabase、SceneViewHandles等,它们提供了各种用于编辑器扩展的功能工具。 使用编辑器扩展可以提高开发效率,使开发者能够更方便地进行编辑器自定义工作流程优化。通过自定义面板工具,可以根据项目需求添加额外的功能工具,提供更好的用户体验开发环境。同时,编辑器扩展也为开发者提供了更多的自由度创造力,可以根据自己的需求进行定制扩展。 总结起来,Unity编辑器扩展是通过自定义脚本来扩展Unity编辑器的功能界面,可以创建自定义的面板、工具栏、菜单项等,提供更好的开发环境用户体验。常用的类包括Editor、EditorWindowEditorGUIEditorGUILayout、GUI、GUILayout、EditorGUIUtility、EditorUtility、AssetDatabase、SceneViewHandles等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值