Unity之GUILayout-Toolbar

作者: 循环渐进123456 | 来源:发表于2017-09-11 09:09 被阅读26次

    转载:http://blog.csdn.net/liqiangeastsun/article/details/42173613

    使用Unity编辑器类编辑 ToolBar

    两种类型的 Toolbar
    第一种只显示文字
    第二种显示图片



    在Editor文件夹下创建脚本EditorScript

    using UnityEngine;  
    using System.Collections;  
    using UnityEditor;  
    
    [CanEditMultipleObjects]  
    [CustomEditor(typeof(TestScript))]  
    public class EditorScript : Editor {  
      
        private TestScript testScript;  
      
      
        private int select = 0;  
        private int selected = 0;  
        private string[] names = { "one", "two", "three", "four"};   
        private static GUIContent[] myGUIContent = new GUIContent[4];   
        private Texture2D[] myTexture = new Texture2D[4];  
      
        private void OnEnable()  
        {  
            testScript = (TestScript)target;  
            Init();  
        }  
      
        private void Init()  //初始化获取图片  
        {  
      
            for (int i = 0; i < 4; i++)  
            {  
                //通过路径获取图片资源  
                myTexture[i] = (Texture2D)AssetDatabase.LoadAssetAtPath("Assets/MyTexture/1.png", typeof(Texture2D));   
                //将图片数组和字符串数组存进去  
                myGUIContent[i] = new GUIContent(myTexture[i], names[i]);    
            }  
        }  
      
        public override void OnInspectorGUI()  //绘制在Inspector面板上  
        {  
            EditorGUILayout.BeginVertical();  
            //创建 Toolbar  , 返回值为选中的项, 参数1 为 选中的项, 参数 2 每项上的文字  
            select = GUILayout.Toolbar(select, names);    
      
            EditorGUILayout.Space();  
            EditorGUILayout.Space();  
            //参数 1, 选中的项, 参数2 每项的图片, 参数3 整个Toolbar的宽度, 参数4 Toolbar的高度  
            selected = GUILayout.Toolbar(selected, myGUIContent, GUILayout.Width(300), GUILayout.Height(64));   
            EditorGUILayout.Space();  
      
            EditorGUILayout.EndVertical();  
        }  
    }  
    

    TestScript 脚本如下

    using UnityEngine;  
    using System.Collections;  
      
    public class TestScript : MonoBehaviour {  
        public void MyTestA()  
        {  
            Debug.Log("Click");  
        }  
    } 
    

    相关文章

      网友评论

        本文标题: Unity之GUILayout-Toolbar

        本文链接:https://www.haomeiwen.com/subject/fzyxsxtx.html