やり方
以下の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上でしか使えないので注意してください。