예제 #1
0
        private void DeleteEditorComponent(GUIMenuItemParamEventArgs args)
        {
            bool addToExclusion = false;

            if (args.ParamValue is bool)
            {
                addToExclusion = (bool)args.ParamValue;
            }

            IEnumerable <Node> selectedNodes = NodeEditor.GetSelectedNodes();

            foreach (Node node in selectedNodes)
            {
                SceneNode sceneNode = node as SceneNode;

                if (sceneNode == null)
                {
                    continue;
                }

                SerializedManager.DeleteSceneNode(
                    sceneNode.SceneId, addToExclusion);
            }

            NodeEditor.RemoveSelectedNodes();
            NodeEditor.RemoveSelectedConnectors();

            editorWindow.Repaint();
        }
        private void LoadScene(GUIMenuItemParamEventArgs args)
        {
            SceneNode node = args.MenuContext as SceneNode;

            if (node == null)
            {
                return;
            }

            if (node.SceneId == SceneManagerController.ANY_SCENE_ID)
            {
                return;
            }

            sceneManager.TransitionToScene(node.SceneInfo);
        }
예제 #3
0
        private void LoadSceneInEditor(GUIMenuItemParamEventArgs args)
        {
            SceneNode     node      = args.MenuContext as SceneNode;
            OpenSceneMode argsParam = (OpenSceneMode)args.ParamValue;

            if (node == null)
            {
                return;
            }

            if (node.SceneId == SceneManagerController.ANY_SCENE_ID)
            {
                return;
            }

            List <Scene> modifiedScenes = EditorSceneManagerExtensions.GetModifiedScenes().ToList();

            if (modifiedScenes.Count > 0)
            {
                string scenePaths = string.Join(System.Environment.NewLine,
                                                modifiedScenes.Select((x) => x.path).ToArray());

                int result = EditorUtility.DisplayDialogComplex("Scene(s) Have Been Modified",
                                                                "Do you want to save the changes you made in the scenes:" +
                                                                System.Environment.NewLine + scenePaths, "Save", "Cancel", "Don't Save");

                // if cancel
                if (result == 1)
                {
                    return;
                }

                // if save
                if (result == 0)
                {
                    EditorSceneManager.SaveOpenScenes();
                }
            }

            EditorSceneManager.OpenScene(node.SceneInfo.SceneAssetPath, argsParam);
        }