コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】AssetDatabase 型に関係する汎用的な関数を管理するクラス「UniAssetDatabaseUtils」を GitHub に公開しました

リポジトリ

使用例

通常

using System.Linq;
using UnityEditor;
using UnityEngine;

public class Example : ScriptableObject
{
    [MenuItem( "Tools/Hoge" )]
    private static void Hoge()
    {
        // Unity プロジェクトに存在する Example アセットを取得する
        {
            var guids   = AssetDatabase.FindAssets( $"t:{nameof( Example )}" );
            var guid    = guids.FirstOrDefault();
            var path    = AssetDatabase.GUIDToAssetPath( guid );
            var example = AssetDatabase.LoadAssetAtPath<Example>( path );
        }

        // Unity プロジェクトに存在するすべての Example アセットを取得する
        {
            var examples = AssetDatabase
                    .FindAssets( $"t:{nameof( Example )}" )
                    .Select( c => AssetDatabase.GUIDToAssetPath( c ) )
                    .Select( c => AssetDatabase.LoadAssetAtPath<Example>( c ) )
                    .ToArray()
                ;
        }
    }
}

AssetDatabaseUtils

using Kogane;
using UnityEditor;
using UnityEngine;

public class Example : ScriptableObject
{
    [MenuItem( "Tools/Hoge" )]
    private static void Hoge()
    {
        // Unity プロジェクトに存在する Example アセットを取得する
        var example = AssetDatabaseUtils.FindAsset<Example>();

        // Unity プロジェクトに存在するすべての Example アセットを取得する
        var examples = AssetDatabaseUtils.FindAssets<Example>();
    }
}