偶寄幾的編譯器工具

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

namespace _
{
    /// <summary>
    /// Editor toolkit
    /// </summary>
    public class _
    {
        public static string RootFolder = "_";
        public static void RootDir(string path)
        {
            string _path = Path.Combine(Path.Combine(Directory.GetCurrentDirectory(), "Assets"), path);
            if (!Directory.Exists(_path))
            {
                Directory.CreateDirectory(_path);
                Debug.Log("Dir is not exist,creat it >>> " + _path);
            }
        }


        [MenuItem("_/Directory", false, 4)]
        public static void CreatDefautDir()
        {
            RootDir("Config");
            CreatConfig();
        }

        public static void CreatConfig()
        {
            string path = "Assets/Config/config.asset";
            WiAsset scriptableObj = ScriptableObject.CreateInstance<WiAsset>();
            AssetDatabase.CreateAsset(scriptableObj, path);
            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
        }

        /// <summary>
        /// 查找配置文件
        /// </summary>
        static void FindConfig()
        {

        }

        public static void LoadConfig()
        {
            string config_path = "Assets/Config/config.asset";

            WiAsset wii = AssetDatabase.LoadAssetAtPath<WiAsset>(config_path);
            if (wii)
            {
                if (wii.DefautDir.Path.Count > 0)
                {
                    for (int i = 0; i < wii.DefautDir.Path.Count; i++)
                    {
                        Directory.CreateDirectory(
                            Path.Combine(Path.Combine(Path.Combine(Directory.GetCurrentDirectory(), "Assets"), RootFolder),
                            wii.DefautDir.Path[i]));
                    }
                }
            }
            else
            {
                Debug.Log("config is null");
            }

        }
    }

    [CreateAssetMenu(fileName = "config", menuName = "Creat-config")]
    public class WiAsset : ScriptableObject
    {
        public WiAsset()
        {
            Version = TimeToString();
        }
        public string Version = "";

        public string usename = "Will";
        public string password = "Wilson";
        public DefautDir DefautDir = new DefautDir()
        {
            Root = _.RootFolder,
            Path = new List<string>()
            {
                "Scenes", "Scripts", "Materials",
                "Textures", "Plugins", "Animations",
                "Animators", "Audios", "Prefabs",
                "Videos"
            }
        };

        string TimeToString()
        {
            string date;
            string time = DateTime.Now.ToLongTimeString();
            //time = time.Replace(':', '-');
            date =
            string.Format("{0}-{1}", DateTime.Now.ToLongDateString(), time);
            return date;
        }

    }

    [System.Serializable]
    public class DefautDir
    {
        public string Root;
        public List<string> Path = new List<string>();
    }

    public class _EditorGUILayout
    {
        public static float hSbarValue;
        [InitializeOnLoadMethod]
        static void DUIScrollbar()
        {
            Editor.finishedDefaultHeaderGUI += editor =>
            {
                GameObject g = editor.target as GameObject;
                if (g)
                {
                    if (g.GetComponent<Button>())
                    {
                        GUIStyle gUIStyle = new GUIStyle();
                        gUIStyle.normal.background = new Texture2D(100, 100);
                        if (true)
                        {
                            hSbarValue = GUILayout.HorizontalScrollbar(hSbarValue, 1.0f, 0.0f, 10.0f);
                            Debug.Log("button");
                        }
                    }
                }
            };
        }

        public static float hSliderValue;
        [InitializeOnLoadMethod]
        static void DUISlider()
        {
            Editor.finishedDefaultHeaderGUI += editor =>
            {
                GameObject g = editor.target as GameObject;
                if (g)
                {
                    if (g.GetComponent<Transform>())
                    {
                        GUIStyle gUIStyle = new GUIStyle();
                        gUIStyle.normal.background = new Texture2D(100, 100);
                        if (true)
                        {
                            hSliderValue = GUILayout.HorizontalSlider(hSliderValue, -2.0f, 2.0f);
                            Debug.Log("button");
                        }
                    }
                }
            };
        }
    }

    [CustomEditor(typeof(WiAsset))]
    [CanEditMultipleObjects]
    public class ObjectBuilderEditor : Editor
    {
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();
            GUIStyle gUIStyle = new GUIStyle
            {
                alignment = TextAnchor.MiddleCenter
            };
            gUIStyle.normal.background = new Texture2D(100, 100);


            GUILayout.Box(">>> GUILayout <<<", gUIStyle);
            if (GUILayout.Button("Creat defaut dir."))
            {
                _.RootDir(_.RootFolder);
                _.LoadConfig();
                AssetDatabase.Refresh();
            }
        }
    }

}


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