当前位置:   article > 正文

Unity面板扩展Fold_Out_editorguilayout.foldout

editorguilayout.foldout

Unity面板扩展Fold_Out


EditorGUILayout.Foldout用于扩展一个面板的折叠选项

其中包含
截图自Unity官方文档
等参数,
在使用时发现有些需要注意的事项,在此做个笔记

首先需要注意,UnityEditor的文件只有在面板中Editor的文件夹下,才有用。

下面上代码

// 编辑器命名空间的引用
using UnityEditor; 
using Boo.Lang;//列表的命名空间

public class EditorTest_FoldOut : EditorWindow // 继承编译器窗口类
{
    //注意,需要声明 公有变量,否则 无法通过 鼠标点击 展开关闭菜单
    //private static bool foldout=false;//单个菜单直接声明一个变量即可
    private static List <bool> foldout=new List<bool>(); // 折叠菜单(多个菜单可以使用List 方便增删)

    // 在编辑器中添加一个菜单
    [MenuItem("编译器扩展/打开一个窗口")] 
    private static void CreateWindow() // 编译器 方法 需 静态,否则无用
    {
        //新增时  记得先添加 后赋值
        //每次点击打开菜单 则创建多一条消息
        foldout.Add(false);
        // 在这里面创建窗口
        EditorWindow.GetWindow(typeof(EditorTest_FoldOut), false, "表头的名字", true);
    }

    void OnGUI()
    {
        for (int i = 0; i < foldout.Count; i++)
        {
            foldout[i] = EditorGUILayout.Foldout(foldout[i], "名字" + i); // 注意Foldout第一个参数是个输出参数,只有经过了这个定位,才可被赋值于框内
            if (foldout[i])
            {
                EditorGUILayout.HelpBox("消息内容"+i, GetMessageType(i)); // 显示一个提示框MessageType. None  Info Warning Error
            }
        }

    }
    /// <summary>
    /// 获取MessageType
    /// </summary>
    /// <param name="i">限制</param>
    /// <returns></returns>
    public MessageType GetMessageType(int i)
    {
        switch (i % 4)
        {
            case 0:
                return MessageType.None;
            case 1:
                return MessageType.Info;
            case 2:
                return MessageType.Warning;
            case 3:
                return MessageType.Error;
            default:
                return MessageType.None;
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

HelpBox的提示,关于MessageType 的四种状态,提示效果不同
具体效果如下:
效果

注意在使用时 声明一定要在赋值前,
声明bool变量需要为公有变量,否则无法通过点击 来运用展开折叠

    void OnGUI()
    {
        bool errorDemonstration = true;//如此声明 将会导致无法修改bool状态 而导致无法收拢
           errorDemonstration = EditorGUILayout.Foldout(errorDemonstration, "错误示范");
        if(errorDemonstration)
        {
            EditorGUILayout.HelpBox("无法收拢的", MessageType.Error);
        }
      
     }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

该代码虽然也会生成带有下拉箭头的文字
错误示范,无法收拢
但是却点不了(切记需要公有变量)

以上就是一点小小的心得分享,
如有缺漏或谬误 欢迎各位大佬多多指教

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/92969
推荐阅读
相关标签
  

闽ICP备14008679号