UnityEditor枚舉選擇框

 [MenuItem("Tools/導出關卡數據到客戶端工程")]
    static void init()
    {
        EditorWindow window = GetWindow(typeof(uteCopyStageLevelConfig));
        window.position = new Rect(500, 300, 300, 400);
        windowType = WindowType.StageLevelM2C;
        display = CopyType.All;
        window.Show();
    }
     private void OnGUI()
    {
        display = (CopyType)EditorGUI.EnumPopup(
            new Rect(3, 10, position.width - 6, 15),
            "選擇導出數據類型:",
            display);
        switch (display)
        {
            case CopyType.One:
                EditorGUI.LabelField(new Rect(0, 50, position.width, 15),
                    "導出方式:",
                   "單個關卡數據導出");
                GUI.Label(new Rect(0, 90, 150, 15), "輸入要導出的關卡ID數:");
                idStr = GUI.TextField(new  Rect(150, 90, 50, 15), idStr, 15);
                errorStr = "";
                break;

            case CopyType.All:
                EditorGUI.LabelField(new Rect(0, 50, position.width, 15),
                    "導出方式:",
                    "所有關卡數據導出");
                errorStr = "";
                break;

            default:
                Debug.LogError("Unrecognized Option");
                break;
        }
        if (GUI.Button(new Rect(3, position.height - 25, position.width - 6, 24), "確定導出"))
        {
            switch (display)
            {
                case CopyType.One:
                    if (int.TryParse(idStr, out ID))
                    {
                        errorStr = "";
                        Copy(ID);
                        this.Close();
                    }
                    else
                    {
                        errorStr = "輸入的ID錯誤";
                    }
                    break;
                case CopyType.All:
                    Copy();
                    this.Close();
                    break;
            }

        }
        if (!errorStr.Equals(""))
        {
            GUIStyle titleStyle2 = new GUIStyle();
            titleStyle2.normal.textColor = Color.red;
            GUI.Label(new Rect(100, 150, position.width, 25), errorStr, titleStyle2);

        }
    }

效果圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章