/// <summary> /// 收集资源 /// </summary> /// <typeparam name="T">资源节点</typeparam> /// <param name="_searchInFolders">搜索目录</param> /// <param name="_filter">过滤</param> /// <param name="_dependencyClassify">依赖项分类</param> /// <param name="_funIslegal">是否合法</param> /// <param name="_funIsForceExclude">是否强制排除</param> /// <param name="_displayProgressBar">是否显示进度条</param> /// <returns>节点组</returns> public List <T> CollectAsset <T>( string[] _searchInFolders, string _filter, enEditorDependencyClassify _dependencyClassify, Func <T, bool> _funIslegal, Func <T, bool> _funIsForceExclude, bool _displayProgressBar) where T : EditorSelectionAsset { return(OnCollectAsset <T>(_searchInFolders, _filter, _dependencyClassify, _funIslegal, _funIsForceExclude, _displayProgressBar)); }
/// <summary> /// 收集资源 /// </summary> /// <typeparam name="T">资源节点</typeparam> /// <param name="_searchInFolders">搜索目录</param> /// <param name="_filter">过滤</param> /// <param name="_dependencyClassify">依赖项分类</param> /// <param name="_funIslegal">是否合法</param> /// <param name="_funIsForceExclude">是否强制排除</param> /// <returns>节点组</returns> public List <T> CollectAsset <T>( string[] _searchInFolders, enEditorAssetFilterClassify _filter, enEditorDependencyClassify _dependencyClassify, Func <T, bool> _funIslegal, Func <T, bool> _funIsForceExclude) where T : EditorSelectionAsset { return(CollectAsset <T>(_searchInFolders, _filter, _dependencyClassify, _funIslegal, _funIsForceExclude, true)); }
/// <summary> /// 收集资源 /// </summary> /// <typeparam name="T">资源节点</typeparam> /// <param name="_searchInFolders">搜索目录</param> /// <param name="_filter">过滤</param> /// <param name="_dependencyClassify">依赖项分类</param> /// <param name="_funIslegal">是否合法</param> /// <returns>节点组</returns> public List <T> CollectAsset <T>( string[] _searchInFolders, string _filter, enEditorDependencyClassify _dependencyClassify, Func <T, bool> _funIslegal) where T : EditorSelectionAsset { return(CollectAsset <T>(_searchInFolders, _filter, _dependencyClassify, _funIslegal, null)); }
/// <summary> /// 收集资源 /// </summary> /// <typeparam name="T">资源节点</typeparam> /// <param name="_searchInFolders">搜索目录</param> /// <param name="_filter">过滤</param> /// <param name="_dependencyClassify">依赖项分类</param> /// <param name="_funIslegal">是否合法</param> /// <param name="_funIsForceExclude">是否强制排除</param> /// <param name="_displayProgressBar">是否显示进度条</param> /// <returns>节点组</returns> List <T> OnCollectAsset <T>( string[] _searchInFolders, string _filter, enEditorDependencyClassify _dependencyClassify, Func <T, bool> _funIslegal, Func <T, bool> _funIsForceExclude, bool _displayProgressBar) where T : EditorSelectionAsset { List <T> results = new List <T>(); string[] arrPath = AssetDatabase.FindAssets(_filter, _searchInFolders); if (arrPath != null && arrPath.Length > 0) { bool isForceExclude = false; bool islegal = false; List <string> lstNodePath = new List <string>(); string[] arrDepPath = null; T node = null; float progress = 0; Type type = typeof(T); for (int i = 0; i < arrPath.Length; i++) { arrPath[i] = AssetDatabase.GUIDToAssetPath(arrPath[i]); progress = i + 1; if (_displayProgressBar) { EditorUtility.DisplayProgressBar("CollectAsset=>" + type.Name, arrPath[i], progress / arrPath.Length); } if (_dependencyClassify == enEditorDependencyClassify.InClude) { #region 收集依赖项 arrDepPath = AssetDatabase.GetDependencies(arrPath[i]); if (arrDepPath != null && arrDepPath.Length > 0) { foreach (string p in arrDepPath) { if (!lstNodePath.Contains(p)) { lstNodePath.Add(p); } } } #endregion } else if (!lstNodePath.Contains(arrPath[i])) { lstNodePath.Add(arrPath[i]); } } progress = 0; for (int i = 0; i < lstNodePath.Count; i++) { progress = i + 1; if (_displayProgressBar) { EditorUtility.DisplayProgressBar("Filter Asset=>" + type.Name, arrPath[i], progress / lstNodePath.Count); } if (File.Exists(lstNodePath[i])) { node = (T)Activator.CreateInstance(typeof(T), lstNodePath[i]); islegal = _funIslegal == null || (_funIslegal != null && _funIslegal(node)); isForceExclude = _funIsForceExclude != null && _funIsForceExclude(node); if (islegal && !isForceExclude) { results.Add(node); } } } } if (_displayProgressBar) { EditorUtility.ClearProgressBar(); } return(results); }
/// <summary> /// 收集资源 /// </summary> /// <typeparam name="T">资源节点</typeparam> /// <param name="_searchInFolders">搜索目录</param> /// <param name="_filter">过滤</param> /// <param name="_dependencyClassify">依赖项分类</param> /// <param name="_displayProgressBar">是否显示进度条</param> /// <returns>节点组</returns> public List <T> CollectAsset <T>( string[] _searchInFolders, string _filter, enEditorDependencyClassify _dependencyClassify, bool _displayProgressBar) where T : EditorSelectionAsset { return(CollectAsset <T>(_searchInFolders, _filter, _dependencyClassify, null, null, _displayProgressBar)); }
/// <summary> /// 收集资源 /// </summary> /// <typeparam name="T">资源节点</typeparam> /// <param name="_searchInFolders">搜索目录</param> /// <param name="_filter">过滤</param> /// <param name="_dependencyClassify">依赖项分类</param> /// <returns>节点组</returns> public List <T> CollectAsset <T>( string[] _searchInFolders, enEditorAssetFilterClassify _filter, enEditorDependencyClassify _dependencyClassify) where T : EditorSelectionAsset { return(CollectAsset <T>(_searchInFolders, OnResolveAssetFilter(_filter), _dependencyClassify, null, null)); }
/// <summary> /// 收集资源 /// </summary> /// <typeparam name="T">资源节点</typeparam> /// <param name="_searchInFolders">搜索目录</param> /// <param name="_dependencyClassify">依赖项分类</param> /// <returns>节点组</returns> public List <T> CollectAsset <T>( string[] _searchInFolders, enEditorDependencyClassify _dependencyClassify) where T : EditorSelectionAsset { return(CollectAsset <T>(_searchInFolders, string.Empty, _dependencyClassify, null, null)); }