public static void menuGame_UpdateRig() { var files = EditorHelper.GetUpdateRigList(); foreach (var obj in files) { AssetDatabase.SetLabels(obj, new string[] { "UpdateRig" }); } AssetDatabase.Refresh(); UnityEditorProjectBrowser.SetSearch("l:UpdateRig t:GameObject"); }
public static void SetFolderSelection(bool revealSelectionAndFrameLastSelected, params string[] paths) { if (!init()) { return; } var ids = UnityEditorProjectBrowser.GetFolderInstanceIDs(paths); s_projectBrowser.SetFolderSelection(ids, true); }
/// <summary> /// /// </summary> static bool init() { if (s_projectBrowser == null) { s_projectBrowser = new UnityEditorProjectBrowser(); } if (Helper.IsNull(s_projectBrowser.m_instance)) { s_projectBrowser = null; } if (s_projectBrowser != null) { s_searchFilter = new UnityEditorSearchFilter(s_projectBrowser.m_SearchFilter); s_objectListArea = new UnityEditorObjectListArea(s_projectBrowser.m_ListArea); s_objectListAreaPing = new UnityEditorPingData(s_objectListArea.m_Ping); if (s_projectBrowser.m_AssetTree != null) { var cont = new UnityEditorIMGUIControlsTreeViewController(s_projectBrowser.m_AssetTree); var gui = new UnityEditorAssetsTreeViewGUI(cont.gui); s_AssetTreePing = new UnityEditorPingData(gui.m_Ping); } //s_AssetTreePing = new UnityEditorPingData( s_projectBrowser.m_AssetTree ); } if (UnitySymbol.Has("UNITY_2018_1_OR_NEWER")) { if (s_ProjectBrowser_isLocked == null) { s_ProjectBrowser_isLocked = UnityTypes.UnityEditor_ProjectBrowser.GetProperty("isLocked", BindingFlags.NonPublic | BindingFlags.Instance); } } else { if (s_ProjectBrowser_m_IsLocked == null) { s_ProjectBrowser_m_IsLocked = UnityTypes.UnityEditor_ProjectBrowser.GetField("m_IsLocked", BindingFlags.NonPublic | BindingFlags.Instance); } } return(s_projectBrowser != null ? true : false); }
/// <summary> /// /// </summary> /// <param name="guid"></param> /// <param name="selectionRect"></param> static void ProjectWindowItemCallback(string guid, Rect selectionRect) { if (!E.i.Enable) { return; } if (s_styles == null) { s_styles = new Styles(); s_styles.lineColor = E.i.lineColor; } if (!IsDetails(selectionRect)) { return; } if (E.i.showLineColor) { DrawBackColor(selectionRect, 0x00); } //showContextMenu( ContextTargetWindow.Project ); float maxx = 50; if (E.i.showExtension) { maxx = ShowExtention(guid, selectionRect); } if (IsAdressableSupport() && IsAdressableAssets(guid)) { var ff = maxx - 20; var rcb = new Rect(ff, selectionRect.y, 16, 16); rcb.y += 2; GUI.Label(rcb, Icon.Get("AssetLabelIcon"), HEditorStyles.iconButton); if (EditorHelper.HasMouseClick(rcb)) { EditorApplication.ExecuteMenuItem("Window/Asset Management/Addressables/Groups"); Event.current.Use(); } } if (E.i.IconClickContext && UnityEditorProjectBrowser.IsTwoColumns()) { var uobj = GUIDUtils.LoadAssetAtGUID <UnityObject>(guid); var r = selectionRect; r.x += 3; r.width = 16; //EditorGUI.DrawRect( r, new Color( 0, 0, 1, 0.5f ) ); if (EditorHelper.HasMouseClick(r)) { var m = new GenericMenu(); m.AddItem(SS._OpenInNewInspector, false, _uobj => EditorHelper.ShowNewInspector(_uobj.ToCast <UnityObject>()), uobj); m.AddItem(S._DuplicateAsset, false, _uobj => EditorHelper.DuplicateAsset <UnityObject>(_uobj.ToCast <UnityObject>()), uobj); if (IsAdressableSupport()) { m.AddSeparator(""); if (IsAdressableAssets(guid)) { m.AddDisabledItem(S._AddtoAddressable); } else { m.AddItem(S._AddtoAddressable, false, _uobj => { UnityAddressableAssetInspectorGUI.SetAaEntry(UnityAddressableAssetSettingsDefaultObject.GetSettings(true), new UnityObject[] { (UnityObject)_uobj }, true); }, uobj); } } #if TEST var path = AssetDatabase.GUIDToAssetPath(guid); if (!AssetDatabase.IsValidFolder(path) && Path.GetExtension(path) == ".mp3") { //var m = new GenericMenu(); m.AddItem("Convert Wav", false, obj => { var proc = new System.Diagnostics.Process(); //proc.WaitForExit(); proc.StartInfo.FileName = Hananoki.Shared.SharedPreference.i.ffmpeg; proc.StartInfo.Arguments = $"-i {path} -y {path.Replace( ".mp3", ".wav" )}"; proc.EnableRaisingEvents = true; //proc.Exited += BuildNspProcess_Exited; proc.Start(); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); return; }, guid); } #endif m.DropDown(r); Event.current.Use(); } } #if false { selectionRect.x -= 12; selectionRect.width = 16; var path = AssetDatabase.GUIDToAssetPath(guid); if (path.GetExtension() == ".prefab") { if (GUI.Button(selectionRect, Icon.Get("Toolbar Plus"), GUIStyle.none)) { GameObject.Instantiate(AssetDatabase.LoadAssetAtPath <GameObject>(path)); Debug.Log("aa"); } } } #endif }
/// <summary> /// ここに独自のエディターの GUI を実装します /// </summary> void OnGUI() { if (toolbarSearchField == null) { toolbarSearchField = new GUIStyle("ToolbarSeachTextField"); } if (toolbarSearchFieldCancelButton == null) { toolbarSearchFieldCancelButton = new GUIStyle("ToolbarSeachCancelButton"); } if (toolbarSearchFieldCancelButtonEmpty == null) { toolbarSearchFieldCancelButtonEmpty = new GUIStyle("ToolbarSeachCancelButtonEmpty"); } //toolbarSearchField.fixedHeight = 18; //toolbarSearchFieldCancelButton.fixedHeight = 18; //toolbarSearchFieldCancelButtonEmpty.fixedHeight = 18; if (m_styles == null) { m_styles = new Styles(); } m_styles.ToolbarPopup = new GUIStyle(EditorStyles.toolbarPopup); m_styles.ToolbarPopup.alignment = TextAnchor.MiddleCenter; if (m_localSettings == null) { m_localSettings = LocalSettings.i; } using (new GUILayout.HorizontalScope(EditorStyles.toolbar)) { GUILayout.Label(Icon.Get("Animation.PrevKey"), EditorStyles.toolbarButton); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { //EditorApplication.ExecuteMenuItem( "Assets/Navigate Backward History %-" ); UnityEditorProjectBrowser.lockOnce(); //SelectionHistory.Backward(); } GUILayout.Label(Icon.Get("Animation.NextKey"), EditorStyles.toolbarButton); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { //EditorApplication.ExecuteMenuItem( "Assets/Navigate Forward History %#-" ); UnityEditorProjectBrowser.lockOnce(); //SelectionHistory.Forward(); } GUILayout.Space(6); GUILayout.Label(Icon.Get("SceneAsset Icon"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { var optionsMenu = new GenericMenu(); foreach (var e in m_localSettings.sceneList) { var path = AssetDatabase.GUIDToAssetPath(e); if (File.Exists(path)) { optionsMenu.AddItem(new GUIContent(path.fileNameWithoutExtension()), false, onLoadScene, path); } else { optionsMenu.AddDisabledItem(new GUIContent(path.fileNameWithoutExtension( ) + ": File not found")); } } optionsMenu.DropDown(EditorHelper.PopupRect(GUILayoutUtility.GetLastRect())); } GUILayout.Label(Icon.Get("SceneAsset Icon"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { var optionsMenu = new GenericMenu(); foreach (var e in m_localSettings.sceneList2) { var path = AssetDatabase.GUIDToAssetPath(e); if (File.Exists(path)) { optionsMenu.AddItem(new GUIContent(path.fileNameWithoutExtension( )), false, onLoadScene, path); } else { optionsMenu.AddDisabledItem(new GUIContent(path.fileNameWithoutExtension( ) + ": File not found")); } } optionsMenu.DropDown(EditorHelper.PopupRect(GUILayoutUtility.GetLastRect())); } GUILayout.Label(Icon.Get("GameManager Icon"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { var optionsMenu = new GenericMenu(); //optionsMenu.AddItem( new GUIContent( "ScriptingDefineSymbols" ), false, onSelectObject, "Assets/Game/ScriptingDefineSymbols.asset" ); foreach (var e in m_localSettings.scriptableObjectList) { var path = AssetDatabase.GUIDToAssetPath(e); if (File.Exists(path)) { optionsMenu.AddItem(new GUIContent(path.fileNameWithoutExtension( )), false, onSelectObject, path); } else { optionsMenu.AddDisabledItem(new GUIContent(path.fileNameWithoutExtension( ) + ": File not found")); } } optionsMenu.DropDown(EditorHelper.PopupRect(GUILayoutUtility.GetLastRect())); } GUILayout.Label(Icon.Get("Folder Icon"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { var optionsMenu = new GenericMenu(); optionsMenu.AddItem(new GUIContent("Local"), false, onShowFolderConternts, "Assets/Local"); optionsMenu.AddItem(new GUIContent("CutScene"), false, onShowFolderConternts, "Assets/Grp/CutScene"); optionsMenu.DropDown(EditorHelper.PopupRect(GUILayoutUtility.GetLastRect())); } GUILayout.Space(12); #if false GUILayout.Label(Icon.Get("BuildSettings.Metro.Small"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (ut.hasMouseClick(GUILayoutUtility.GetLastRect())) { EditorApplication.ExecuteMenuItem("Window/" + Hananokia.className + "/" + BuildWindow.className); } #endif GUILayout.Label(Icon.Get("GameManager Icon"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { EditorApplication.ExecuteMenuItem("Window/ProjectSettingWindow"); } #if UNITY_2017 GUILayout.Label(Icon.Get("Animation Icon"), EditorStyles.toolbarButton, GUILayout.Width(26)); #endif #if UNITY_2018 GUILayout.Label(Icon.Get("UnityEditor.AnimationWindow"), EditorStyles.toolbarButton, GUILayout.Width(26)); #endif if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { EditorUtils.AnimationWindow(); } #if UNITY_2017 GUILayout.Label(Icon.Get("Animator Icon"), EditorStyles.toolbarButton, GUILayout.Width(26)); #endif #if UNITY_2018 GUILayout.Label(Icon.Get("UnityEditor.Graphs.AnimatorControllerTool"), EditorStyles.toolbarButton, GUILayout.Width(26)); #endif if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { EditorUtils.AnimatorWindow(); } GUILayout.Label(Icon.Get("ViewToolZoom"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { //builtinWindow.AnimatorWindow(); EditorApplication.ExecuteMenuItem("Window/Frame Debugger"); } #if UNITY_2017 GUILayout.Label(Icon.Get("TimelineAsset Icon"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (ut.hasMouseClick(GUILayoutUtility.GetLastRect())) { //builtinWindow.AnimatorWindow(); EditorApplication.ExecuteMenuItem("Window/Timeline"); } #endif #if UNITY_2018 GUILayout.Label(Icon.Get("TimelineSelector"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { EditorApplication.ExecuteMenuItem("Window/Sequencing/Timeline"); } #endif #if UNITY_2017 GUILayout.Label(icon.get("Lighting"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (ut.hasMouseClick(GUILayoutUtility.GetLastRect())) { EditorApplication.ExecuteMenuItem("Window/Lighting/Light Explorer"); } #endif #if UNITY_2018 GUILayout.Label(Icon.Get("Lighting"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { EditorApplication.ExecuteMenuItem("Window/Rendering/Light Explorer"); } #endif GUILayout.Label(Icon.Get("UnityEditor.ConsoleWindow"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { //builtinWindow.ConsoleWindow(); EditorApplication.ExecuteMenuItem("Window/Console Pro 3"); } GUILayout.Label(Icon.Get("WelcomeScreen.AssetStoreLogo"), EditorStyles.toolbarButton, GUILayout.Width(26)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { EditorUtils.AssetStoreWindow(); } GUILayout.Space(6); GUILayout.Label(m_searchFilterModeName[m_searchFilterMode], m_styles.ToolbarPopup, GUILayout.Width(140)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect(), EventMouseButton.R)) { m_searchFilterMode = 1 - m_searchFilterMode; this.Repaint(); } else if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect(), EventMouseButton.L)) { var m = new GenericMenu(); if (m_searchFilterMode == 0) { for (int i = 0; i < m_searchFilterHierarchy.Length; i++) { m.AddItem(m_searchFilterHierarchy[i], false, onHierarchy_SetSearchFilter, m_searchFilterHierarchy[i].text); } } else if (m_searchFilterMode == 1) { for (int i = 0; i < m_searchFilterProject.Length; i++) { m.AddItem(m_searchFilterProject[i], false, onProjectBrowser_SetSearch, m_searchFilterProject[i].text); } } m.DropDown(EditorHelper.PopupRect(GUILayoutUtility.GetLastRect())); } //if( m_guidEdit == false ) { GUILayout.Label(m_guid, EditorStyles.toolbarButton, GUILayout.Width(220)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect(), EventMouseButton.R)) { m_guidEdit = !m_guidEdit; Repaint(); } if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { //var path = AssetDatabase.GUIDToAssetPath( m_guid ); //if( !string.IsNullOrEmpty( path ) ){ // var obj = AssetDatabase.LoadAssetAtPath<UnityObject>( path ); // Selection.activeObject = obj; //} var m = new GenericMenu(); m.AddItem(new GUIContent("クリップボードにコピー"), false, () => { GUIUtility.systemCopyBuffer = m_guid; }); m.DropDown(EditorHelper.PopupRect(GUILayoutUtility.GetLastRect())); } if (m_focusLost) { GUIUtility.keyboardControl = 0; m_focusLost = false; } int textFieldID = GUIUtility.GetControlID("TextField".GetHashCode(), FocusType.Keyboard) + 1; if (textFieldID == 0) { } else { // Handle custom copy-paste string guid = HandleCopyPaste(textFieldID) ?? ""; bool bb = false; if (!string.IsNullOrEmpty(guid)) { m_guidTextEdit = guid; bb = true; } GUI.changed = false; //Rect rect = GUILayoutUtility.GetRect( 220f, GUILayoutUtility.GetLastRect().y ); //rect.x += 4f; //rect.y += 2f; // 検索ボックスを表示 //int controlID = GUIUtility.GetControlID( searchFieldHash, FocusType.Passive, rect ); //m_guidTextEdit = ToolbarSearchField( controlID, rect, m_guidTextEdit, false ); m_guidTextEdit = GUILayout.TextField(m_guidTextEdit, toolbarSearchField, GUILayout.Width(220)); if (GUI.changed || bb) { var path = AssetDatabase.GUIDToAssetPath(m_guidTextEdit); if (!string.IsNullOrEmpty(path)) { var obj = AssetDatabase.LoadAssetAtPath <UnityObject>(path); EditorGUIUtility.PingObject(obj); } } GUILayout.Button(GUIContent.none, toolbarSearchFieldCancelButtonEmpty); } //} //else { // int textFieldID = GUIUtility.GetControlID( "TextField".GetHashCode(), FocusType.Keyboard ) + 1; // if( textFieldID == 0 ) { } // else { // // Handle custom copy-paste // string guid = HandleCopyPaste( textFieldID ) ?? m_guid; // guid = GUILayout.TextField( guid, EditorStyles.toolbarTextField, GUILayout.Width( 220 ) ); // if( m_guid != guid ) { // //Event.current.Use(); // var path = AssetDatabase.GUIDToAssetPath( guid ); // if( !string.IsNullOrEmpty( path ) ) { // var obj = AssetDatabase.LoadAssetAtPath<UnityObject>( path ); // EditorGUIUtility.PingObject( obj ); // } // } // m_guid = guid; // } // //if( ut.hasMouseClick( GUILayoutUtility.GetLastRect(), EventMouseButton.R ) ) { // // m_guidEdit = !m_guidEdit; // // Repaint(); // //} //} GUILayout.FlexibleSpace(); } }
void onProjectBrowser_SetSearch(object userData) { string filter = (string)userData; UnityEditorProjectBrowser.SetSearch(filter); }
void onShowFolderConternts(object userData) { string path = (string)userData; UnityEditorProjectBrowser.ShowFolderContents(path, true); }
void onSelectObject(object userData) { string path = (string)userData; UnityEditorProjectBrowser.SelectionChangedLockProjectWindow(path); }
public static void menuGame_ScriptingDefineSymbols() { UnityEditorProjectBrowser.SelectionChangedLockProjectWindow(LocalSettings.i.scriptingDefineSymbols); }