ScriptObject創(chuàng)建工具

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();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容