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)); } } }