예제 #1
0
        private void DrawIdentificationInfo(bool isAnyScene)
        {
            EditorGUI.BeginDisabledGroup(isAnyScene);

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.PropertyField(serializedScene.SceneNameProp);

            EditorGUILayout.BeginHorizontal();

            EditorGUILayout.TextField("Scene Path: ", serializedScene.AssetPathProp.stringValue);

            Rect scenePathRect = GUILayoutUtility.GetLastRect();

            scenePathDragReceiver.ReceiverBox = scenePathRect.WithPosition(
                GUIUtility.GUIToScreenPoint(scenePathRect.position));

            if (GUILayout.Button("Ping", GUILayout.MaxWidth(40f)))
            {
                UnityEngine.Object asset = AssetDatabase.LoadMainAssetAtPath(
                    serializedScene.AssetPathProp.stringValue);
                EditorGUIUtility.PingObject(asset);
            }

            EditorGUILayout.EndHorizontal();

            scenePathDragReceiver.Update();
            EditorGUILayout.PropertyField(serializedScene.UseAnySceneTransProp);

            if (EditorGUI.EndChangeCheck())
            {
                serializedScene.SerializedObject.ApplyModifiedProperties();

                SceneManagerEditorWindow nodeEditor = SceneManagerEditorWindow.TryGetExistingWindow();

                if (nodeEditor != null)
                {
                    nodeEditor.Repaint();
                }
            }

            EditorGUI.EndDisabledGroup();
        }
        private void OnGUI()
        {
            if (needsRefresh)
            {
                Refresh();
            }

            SerializedSceneManager.SerializedManager.Update();
            SerializedSceneManager.SceneNodesObject.Update();

            Initialize();

            sceneFileDragReceiver.ReceiverBox = NodeEditor.NodeEditor.NodeEditorRect.
                                                WithPosition(GUIUtility.GUIToScreenPoint(NodeEditor.NodeEditor.NodeEditorRect.position));

            sceneFileDragReceiver.Update();

            RenderToolbar();

            if (isTabVisible)
            {
                splitView.BeginSplitView();

                RenderManagementWindow();

                splitView.Split();
            }

            NodeEditor.OnGUI();

            if (isTabVisible)
            {
                if (splitView.EndSplitView())
                {
                    Repaint();
                }
            }

            serializedSceneManager.SceneNodes.PanOffset = NodeEditor.NodeEditor.GetPanOffset();
        }