(转)Unity笔记之编辑器(BeginFadeGroup、BeginHorizontal、BeginScrollView) ... ...

1. BeginFadeGroup(float value)
这是EditorGUILayout中的一个函数,用来隐藏/显示在它包含的组中的内容。value则是显示内容的量,范围是0-1 。
比较下未使用/使用BeginFadeGroup的窗口:

[code]csharpcode:

using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用

public class Editor2 : EditorWindow // 编辑器类
{
    [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
    static void CreateWindow() // 下面这个函数必须是***静态的***
    {
        // 在这里面创建窗口
        EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
    }

    void OnGUI()
    {
        EditorGUILayout.BeginFadeGroup(0.5f); // 组开始
        GUILayout.Button("Button0"); // 组中的内容,我这写了3个按钮
        GUILayout.Button("Button1");
        GUILayout.Button("Button2");
        EditorGUILayout.EndFadeGroup(); // 组结束
    }
}

我们把value设置为0.5,就是显示50%;设置为0.75,就是显示75%。

         

2. BeginHorizontal()

通常不同的GUI都会一个个向下排列,BeginHorizontal函数可以把组中的内容在同一行显示。(BeginVertical()就是竖轴排列了,用法也一样,我就不赘述了)

[code]csharpcode:

using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用

public class Editor2 : EditorWindow // 编辑器类
{
    [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
    static void CreateWindow() // 下面这个函数必须是***静态的***
    {
        // 在这里面创建窗口
        EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
    }

    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal(); // 组开始
        GUILayout.Button("Button0"); // 组中的内容
        GUILayout.Button("Button1");
        EditorGUILayout.EndHorizontal(); // 组结束
    }
}

比较一下未使用/使用BeginHorizontal的窗口:

    

3. BeginScrollView()

BeginScrollView函数可以为宽度或高度较大的GUI提供一个可以滑动的空间。

[code]csharpcode:

using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用

public class Editor2 : EditorWindow // 编辑器类
{
    Vector2 _scrollPos;

    [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
    static void CreateWindow() // 下面这个函数必须是***静态的***
    {
        // 在这里面创建窗口
        EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
    }

    void OnGUI()
    {
        _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos); // 组开始
        EditorGUILayout.LabelField("我是佑丶小贱 我是佑丶小贱 我是佑丶小贱 我是佑丶小贱"); // 组中的内容
        EditorGUILayout.LabelField("I am Xiaojian I am Xiaojian I am Xiaojian I am Xiaojian");
        EditorGUILayout.EndScrollView(); // 组结束
    }
}

比较下未使用/使用BeginScrollView的窗口:

    

是不是都很简单,那些想给自己的项目做些插件的童鞋是不是都跃跃欲试了!

原文地址:https://www.cnblogs.com/backlighting/p/5061581.html