Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        public static void SetFolderSelection(bool revealSelectionAndFrameLastSelected, params string[] paths)
        {
            if (!init())
            {
                return;
            }

            var ids = UnityEditorProjectBrowser.GetFolderInstanceIDs(paths);

            s_projectBrowser.SetFolderSelection(ids, true);
        }
Exemplo n.º 3
0
        /// <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
        }
Exemplo n.º 5
0
        /// <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();
            }
        }
Exemplo n.º 6
0
        void onProjectBrowser_SetSearch(object userData)
        {
            string filter = (string)userData;

            UnityEditorProjectBrowser.SetSearch(filter);
        }
Exemplo n.º 7
0
        void onShowFolderConternts(object userData)
        {
            string path = (string)userData;

            UnityEditorProjectBrowser.ShowFolderContents(path, true);
        }
Exemplo n.º 8
0
        void onSelectObject(object userData)
        {
            string path = (string)userData;

            UnityEditorProjectBrowser.SelectionChangedLockProjectWindow(path);
        }
Exemplo n.º 9
0
 public static void menuGame_ScriptingDefineSymbols()
 {
     UnityEditorProjectBrowser.SelectionChangedLockProjectWindow(LocalSettings.i.scriptingDefineSymbols);
 }