protected virtual void OnGUISearchAssetType() { if (m_IgnoreScearchAssetType) { return; } EditorGUILayout.DropdownButton(m_FilterByType, FocusType.Passive, EditorStyles.largeLabel, GUILayout.ExpandWidth(false)); m_SearchAssetType = (SearchAssetType)EditorGUILayoutUtil.EnumPopup(m_SearchAssetType, m_PopupStyle, GUILayout.Width(m_FilterByTypeWith)); }
public static void ForeachPrefabAndScene(Action <UnityObject, string> action, bool showProgress, string[] searchInFolders = null, SearchAssetType searchType = SearchAssetType.All) { string filter; switch (searchType) { case SearchAssetType.Prefab: filter = "t:Prefab"; break; case SearchAssetType.Scene: filter = "t:Scene"; break; default: filter = "t:Prefab t:Scene"; break; } ; var guids = AssetDatabase.FindAssets(filter, searchInFolders); var count = guids.Length; if (showProgress) { EditorUtility.DisplayCancelableProgressBar("Progress Assets", $"0/{count}", 0); } try { for (var i = 0; i < count; i++) { if (showProgress) { if (EditorUtility.DisplayCancelableProgressBar("Progress Assets", $"{i}/{count}", i / (float)count)) { break; } } var path = AssetDatabase.GUIDToAssetPath(guids[i]); var go = AssetDatabase.LoadAssetAtPath <UnityObject>(path); action(go, path); } } finally { EditorUtility.ClearProgressBar(); } }