public static string SearchForObjectInAssets(string objectName, SearchByLabelFilter searchFilter) { //Assumes that there will only exist one file called like this string filter = $"l:{searchFilter.ToString()} "; string searchString = $"{filter} {objectName}"; return(GetObjectPathByFilter(searchString)); }
private void OnGUI() { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(GUI.skin.box); scriptSource = EditorGUILayout.ObjectField("Script: ", scriptSource, typeof(Object), false); EditorGUILayout.EndHorizontal(); if (GUILayout.Button("Find object's directory: Object Reference Approach")) { var directoryOfChosenObject = FindDirectoryOfObject(scriptSource); Debug.Log(directoryOfChosenObject); } EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(GUI.skin.box); searchName = EditorGUILayout.TextField("Search string: ", searchName); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); filterType = (SearchFilterOptions)EditorGUILayout.EnumPopup("Filter the search by: ", filterType); if (filterType == SearchFilterOptions.Type) { typeSearchFilter = (SearchByTypeFilter)EditorGUILayout.EnumPopup("Type to search for: ", typeSearchFilter); } else { labelSearchFilter = (SearchByLabelFilter)EditorGUILayout.EnumPopup("Label to search for: ", labelSearchFilter); } EditorGUILayout.Separator(); string buttonText = $"Find object's directory: Search Filter Approach - {filterType.ToString()}"; if (GUILayout.Button(buttonText)) { switch (filterType) { case SearchFilterOptions.Type: SearchForObjectInAssets(searchName, typeSearchFilter); break; case SearchFilterOptions.Label: SearchForObjectInAssets(searchName, labelSearchFilter); break; default: break; } } EditorGUILayout.EndVertical(); }