public static List <TCastTo> Assets <TCastTo>(this HUMAssets.Data.FindType find) where TCastTo : UnityEngine.Object
        {
            var assetIds   = UnityEditor.AssetDatabase.FindAssets("t:" + find.type);
            var assetsList = new List <TCastTo>();

            foreach (string assetId in assetIds)
            {
                var asset = UnityEditor.AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(UnityEditor.AssetDatabase.GUIDToAssetPath(assetId)) as TCastTo;
                if (asset != null)
                {
                    assetsList.Add(asset);
                }
            }

            return(assetsList);
        }
        public static ScriptableObject[] ScriptableObjects(this HUMAssets.Data.FindType find)
        {
            string[] assetIds   = UnityEditor.AssetDatabase.FindAssets("t:" + find.type);
            var      assetsList = new List <ScriptableObject>();

            if (find.type.IsInterface)
            {
                assetIds   = UnityEditor.AssetDatabase.FindAssets("t:" + typeof(ScriptableObject));
                assetsList = new List <ScriptableObject>();

                foreach (string assetId in assetIds)
                {
                    var asset = UnityEditor.AssetDatabase.LoadAssetAtPath <ScriptableObject>(UnityEditor.AssetDatabase.GUIDToAssetPath(assetId)) as ScriptableObject;
                    if (asset != null && asset.GetType().Inherits(find.type))
                    {
                        assetsList.Add(asset);
                    }
                }
            }
            else
            {
                assetIds   = UnityEditor.AssetDatabase.FindAssets("t:" + find.type);
                assetsList = new List <ScriptableObject>();

                foreach (string assetId in assetIds)
                {
                    var asset = UnityEditor.AssetDatabase.LoadAssetAtPath <ScriptableObject>(UnityEditor.AssetDatabase.GUIDToAssetPath(assetId)) as ScriptableObject;
                    if (asset != null)
                    {
                        assetsList.Add(asset);
                    }
                }
            }

            return(assetsList.ToArray());
        }
 public static T[] ScriptableObjects <T>(this HUMAssets.Data.FindType find)
 {
     return(ScriptableObjects(find).Cast <T>().ToArray());
 }
 public static HUMAssets.Data.FindTypeAll All(this HUMAssets.Data.FindType find)
 {
     return(new HUMAssets.Data.FindTypeAll(find));
 }