Version: 5.4
public static string[] FindAssets (string filter);
public static string[] FindAssets (string filter, string[] searchInFolders);

パラメーター

filter フィルタリングの文字列には、名称、アセットのラベル、そしてタイプ(クラス名)が使えます。
searchInFolders フォルダーを1つ以上指定すると、検索をそのフォルダーと子フォルダーに限定します(全アセットを検索するよりも早くなります)。

戻り値

string[] 検索でヒットしたアセットGUIDの配列

説明

フィルター検索の文字列を使ってアセットデータベースを検索します。

You can search for names, lables and types (classnames).


'name': filter assets by their filename (without extension). Words separated by whitespace are treated as separate name searches. Use quotes for grouping multiple words into a single search.


'labels': Use the keyword 'l'. Filtering by more than one label will return assets if just one asset label is matched (OR'ed)


'types': キーワード `t` を使います。 1 つ以上のタイプを使ってフィルタリングすると、どれか一つと一致するアセットが返ります(OR'ed)。タイプには、 'Texture2D' などあらかじめ用意されているものか、ユーザースクリプトのクラス名のどちらかを指定することができます。アセットすべてが望みなら、 'Object' を使うと、すべてのオブジェクトからアセットが抽出されます。

検索では大文字と小文字は区別されません。 アセットのパスを取得するために、AssetDatabase.GUIDToAssetPath を使い、アセットを読み込む場合などは AssetDatabase.LoadAssetAtPath を使います。

using UnityEngine;
using UnityEditor;

public class Example {

[MenuItem("Test/FindAssetsUsingSearchFilter")] static void FindAssetsUsingSearchFilter() { // Find all assets labelled with 'concrete' : string[] guids = AssetDatabase.FindAssets ("l:concrete");

foreach (string guid in guids) { Debug.Log (AssetDatabase.GUIDToAssetPath(guid)); }

// Find all Texture2Ds that have 'co' in their filename, that are labelled with 'concrete' or 'architecture' and are placed in 'MyAwesomeProps' folder string[] lookFor = new string[] {"Assets/MyAwesomeProps"}; string[] guids2 = AssetDatabase.FindAssets ("co l:concrete l:architecture t:texture2D", lookFor);

foreach (string guid in guids2) { Debug.Log (AssetDatabase.GUIDToAssetPath(guid)); } } }