关于EditorGUILayout编辑器窗口的学习记录4窗体的基本组件(调色盘选项)(创建动画曲线)(弹出菜单)

本文介绍了如何在Unity中使用EditorWindow创建自定义窗体,详细探讨了EditorGUILayout.ColorField用于调色盘、EditorGUI.CurveField用于创建动画曲线以及EditorGUILayout.IntPopup实现弹出菜单的方法,包括关键代码、效果展示和API参数详解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(编辑器可视化窗体)EditorWindow

@创建窗体

@关键代码

1.创建继承EditorWindow的类

//创建继承EditorWindow的类
public class _DisplayUI : EditorWindow
{
   
   
}

@进入窗体

@关键代码

1.编写进入EditorWindow的类窗体的方法

        static void Init()
        {
   
   
            _DisplayUI window = (_DisplayUI)EditorWindow.GetWindow(typeof(_DisplayUI));
            window.Show();
        }

2.使用MenuItem特性将方法放在Unity菜单栏下

        //菜单栏的设置
        [MenuItem("MyWindow/My Window")]
        static void Init()
        {
   
   
            // Get existing open window or if none, make a new one:
            _DisplayUI window = (_DisplayUI)EditorWindow.GetWindow(typeof(_DisplayUI));
            window.Show();
        }

@效果展示

完成上面两部后,在菜单栏就可以找到自定义的功能选项,通过选项就可以进入EditorWindow了,注意MenuItem特性方法所在脚本必须放在名为Edtior的文件夹下
在这里插入图片描述
打开的窗体:
在这里插入图片描述

完成

至此就可以通过EditorGUILayou里的方法来定义我们自己的窗体了!

(窗体界面设置类)EditorGUILayout

@窗体的基本组件

(方法名)EditorGUILayout.ColorField(调色盘选项)

@效果展示
== 调色盘效果 ==

在这里插入图片描述

@关键代码
 matColor = EditorGUILayout.ColorField("New Color", matColor);
@官方样例
using UnityEngine;
using UnityEditor;

// Change the color of the selected GameObjects.

public class ExampleClass : EditorWindow
{
   
   
    Color matColor = Color.white;

    [MenuItem("Examples/Mass Color Change")]
    static void Init()
    {
   
   
        EditorWindow window = GetWindow(typeof(ExampleClass));
        window.Show();
    }

    void OnGUI()
    {
   
   
        matColor = EditorGUILayout.ColorField("New Color", matColor);

        if (GUILayout.Button("Change!"))
            ChangeColors();
    }

    private void ChangeColors()
    {
   
   
        if (Selection.activeGameObject)
            foreach (GameObject t in Selection.gameObjects)
            {
   
   
                Renderer rend = t.GetComponent<Renderer>();

                if (rend != null)
                    rend.sharedMaterial.color = matColor;
            }
    }
}
@官方API
        public static Color ColorField(Color value, params GUILayoutOption[] options);
        public static Color ColorField(string label, Color value, params GUILayoutOption[] options);
        public static Color ColorField(GUIContent label, Color value, params GUILayoutOption[] options);
        public static Color ColorField(GUIContent label, Color value, bool showEyedropper, bool showAlpha, bool hdr, ColorPickerHDRConfig hdrConfig, params GUILayoutOption[] options
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值