Unity 指定文件夹查找资源

Unity 指定文件夹查找资源_第1张图片
Paste_Image.png
Unity 指定文件夹查找资源_第2张图片
Paste_Image.png

http://docs.unity3d.com/ScriptReference/AssetDatabase.FindAssets.html

using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
using System.IO;

[CanEditMultipleObjects]
[CustomEditor(typeof(DefaultAsset))]
public class FindAssetsEditor : Editor
{
    private string filter;
    private string[] searchInFolders;

    private string[] assets;

    void Awake()
    {
        var folders = new List();

        for (int i = 0; i < targets.Length; i++)
        {
            string assetPath = AssetDatabase.GetAssetPath(targets[i]);
            if(Directory.Exists(assetPath))
                folders.Add(assetPath);
        }

        searchInFolders = folders.ToArray();
    }

    void OnDestroy()
    {

    }

    public override void OnInspectorGUI()
    {
        GUI.enabled = searchInFolders.Length == targets.Length;
        if (!GUI.enabled)
            return;

        filter = EditorGUILayout.TextField(filter);

        if(GUILayout.Button("查找"))
        {
            assets = AssetDatabase.FindAssets(filter, searchInFolders);
        }

        for (int i = 0; assets != null && i < assets.Length; i++)
        {
            var assetPath = AssetDatabase.GUIDToAssetPath(assets[i]);
            if(GUILayout.Button(new GUIContent(assetPath, AssetDatabase.GetCachedIcon(assetPath)), "Label"))
            {
                var asset = AssetDatabase.LoadAssetAtPath(assetPath);
                Selection.activeObject = asset;
            }
        }
    }
}
 

                            
                        
                    
                    
                    

你可能感兴趣的:(Unity 指定文件夹查找资源)