ScriptObject创建工具

作者: 影子丢了 | 来源:发表于2016-02-26 18:00 被阅读760次
    using UnityEngine;
    using System.Collections;
    using UnityEditor;
    using System.Reflection;
    
    public class ScriptObjectCreator : EditorWindow
    {
        public string scriptName;
        public string fieldName;
    
        public static void GetData()
        {
            string stringholderpath = "Assets/bonenames.asset";
            TestScriptObject a = AssetDatabase.LoadAssetAtPath(stringholderpath, typeof(TestScriptObject)) as TestScriptObject;
            Debug.LogError(a.test[0]);
        }
        [MenuItem("tools/CreateScriptObject")]
        public static void GetWindow()
        {
            EditorWindow.GetWindow<ScriptObjectCreator>("CreatorWindow");
        }
        void OnGUI()
        {
            EditorGUILayout.BeginVertical();
            scriptName = EditorGUILayout.TextField(scriptName, GUILayout.Width(250));
            fieldName = EditorGUILayout.TextField(fieldName, GUILayout.Width(250));
            if (GUILayout.Button(new GUIContent("确定")))
            {
                Assembly assembly = Assembly.GetExecutingAssembly();
                System.Type[] types = assembly.GetTypes();
                System.Type instanceType = null;
                foreach (var a in types)
                {
                    if(a.ToString() == scriptName)
                    {
                        instanceType = (System.Type)a;
                        break;
                    }
                }
    
                ScriptableObject temp = ScriptableObject.CreateInstance(instanceType);
                string stringholderpath = "Assets/"+ fieldName + ".asset";
                AssetDatabase.CreateAsset(temp, stringholderpath);
            }
            EditorGUILayout.EndVertical();
        }
    }
    

    相关文章

      网友评论

        本文标题:ScriptObject创建工具

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