コガネブログ

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

【Unity】エディタ拡張において Unity プロジェクト内から指定した型の ScriptableObject を取得する方法

概要

例えば HogeSettings という名前の ScriptableObject を取得したい場合

var settings = AssetDatabase
    .FindAssets( "t:HogeSettings" )
    .Select( c => AssetDatabase.GUIDToAssetPath( c ) )
    .Select( c => AssetDatabase.LoadAssetAtPath<HogeSettings>( c ) )
    .FirstOrDefault()
;

上記のようなコードを記述することで取得できます

ファイルパスではなく型指定で取得することができるので、
ScriptableObject を管理するフォルダが変更されても正常に取得できます