Unity 編輯器拓展動態下拉列表

 //表現

//編輯器擴展腳本放到Editor下

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(objPropPrefab))] //指定要編輯的腳本對象
public class PropInspector : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        objPropPrefab script = target as objPropPrefab;

        EditorGUILayout.BeginHorizontal();
        script.PropType = (enumProp)EditorGUILayout.
        EnumPopup("類別:", script.PropType);
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        if (script.PropType == enumProp.Yaoshui)
        {
            script.YaoshuiType = (enumYaoshui)EditorGUILayout.
            EnumPopup("藥水:", script.YaoshuiType);
        } else if (script.PropType == enumProp.Food) {
            script.FoodType = (enumFood)EditorGUILayout.
            EnumPopup("消耗品:", script.FoodType);
        }
        else if (script.PropType == enumProp.Paotai)
        {
            script.PaotaiType = (enumPaotai)EditorGUILayout.
            EnumPopup("炮臺:", script.PaotaiType);
        }
        else if (script.PropType == enumProp.Baoxiang)
        {
            script.ChackType = (enumChack)EditorGUILayout.
            EnumPopup("寶箱:", script.ChackType);
        }
        EditorGUILayout.EndHorizontal();


    }
}

示例中用到的枚舉
 /**buff藥水道具枚舉*/
    public enum enumYaoshui
    {
        addHp = 1,      //加血藥水、
        maxHp,          //增加血量上限藥水永久
        addLuck         //爆率藥水有時效
    }
    /**消耗類物品枚舉*/
    public enum enumFood
    {
        money = 1,    ///消耗類物品 錢 食物 心情 燃料
        food,
        fuel,
        happy,
        wood,
        stone,
        magic
    }
    /**寶箱枚舉*/
    public enum enumChack
    {
        Chack0 = 1,    //寶箱
        Chack1,
        Chack2
    }
    /**炮臺枚舉*/
    public enum enumPaotai
    {
        Paotai0 = 1,  
        Paotai1,
        Paotai2,
        Paotai3
    }

////Unity編輯器擴展: GUILayout、EditorGUILayout 控件整理  https://blog.csdn.net/linxinfa/article/details/87863123

//objPropPrefab 腳本 掛到場景的物體上就可以 

using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;


    /**道具預製體*/
    public class objPropPrefab : MonoBehaviour
    {

        public int vid;//作爲物品的唯一標識
        private GlobalDate.BagDate date;//物品的信息

        [HideInInspector]
        public enumProp PropType;//物品類別 大類
        [HideInInspector]
        public enumYaoshui YaoshuiType;//物品類別
        [HideInInspector]
        public enumChack ChackType;//物品類別
        [HideInInspector]
        public enumPaotai PaotaiType;//物品類別
        [HideInInspector]
        public enumFood FoodType;//物品類別

        void Start()
        {

}

 

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