Unity生成.assets

工具类

using UnityEngine;
using UnityEditor;
using System.IO;

public static class ScriptableObjectUtility
{
    public static void CreateAsset() where T : ScriptableObject
    {
        T asset = ScriptableObject.CreateInstance();
        string path = AssetDatabase.GetAssetPath(Selection.activeObject);
        if( string.IsNullOrEmpty( path ) )
        {
            Debug.LogError("Not select files, select files first! ");
            return;
        }
        else if (!string.IsNullOrEmpty(Path.GetExtension(path)))
        {
            path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), "");
        }
        string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/New" + typeof(T).ToString() + ".asset");
        AssetDatabase.CreateAsset(asset, assetPathAndName);
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        EditorUtility.FocusProjectWindow();
        Selection.activeObject = asset;
    }
}
菜单按钮
using UnityEngine;
using UnityEditor;
using System;
public class CreateAssets
{
    [MenuItem("Assets/Create assets")]
    public static void CreateAsset()
    {
        ScriptableObjectUtility.CreateAsset();
    }
}
被生成对象,ScriptableObject类型

using UnityEngine;
using UnityEditor;
using System;
public class AssetsScripts : ScriptableObject
{
    public string playerName = "Yu Xikuo";
}


你可能感兴趣的:(Unity3D基础)