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();
}
}
}
}
偶寄幾的編譯器工具
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.