やり方
以下の3つのメソッドを利用します。
メソッド | 意味 |
---|---|
AssetDatabase.FindAssets | t:〇〇 とすると特定のtype のアセットのGUID 一覧を取得できる |
AssetDatabase.GUIDToAssetPath | GUID からアセットパスに変換をする |
AssetDatabase.LoadAssetAtPath | アセットパスからObject を取得する |
AssetDatabase-FindAssets - Unity スクリプトリファレンス
AssetDatabase-GUIDToAssetPath - Unity スクリプトリファレンス
AssetDatabase-LoadAssetAtPath - Unity スクリプトリファレンス
// 今回利用するメソッドのシグネチャ public static string[] FindAssets (string filter); public static string GUIDToAssetPath (string guid); public static T LoadAssetAtPath<T>(string assetPath) where T : UnityEngine.Object;
// 利用方法 // 「StringTableCollection」というScriptableObjectのGUIDの一覧を取得 var guids = AssetDatabase.FindAssets("t:StringTableCollection"); // GUIDからAssetPathに変換する var assetPaths = guids.Select(AssetDatabase.GUIDToAssetPath).ToArray(); // AssetPathから対象のScriptableObjectを取得する var scriptableObjects = assetPaths.Select(AssetDatabase.LoadAssetAtPath<StringTableCollection>).ToArray();
ちなみにStringTableCollection
はUnity Localization
で利用されるScriptableObject
です。
Class StringTableCollection | Localization | 1.0.5
またAssetDatabase
はEditor
上でしか使えないので注意してください。