Example #1
0
        public bool OnGUI()
        {
            EditorGUILayout.HelpBox("Do not Undo these operations! No guarantee about what could break.",
                                    MessageType.Warning);
            EditorGUILayout.Separator();
            EditorGUILayout.Separator();
            EditorGUILayout.Separator();
            EditorGUILayout.HelpBox(
                "While the InAudio project hopefully is in perfect shape, bugs can happen. This will attempt to fix any problems.",
                MessageType.Info);
            if (GUILayout.Button("Fix integrity"))
            {
                FixParentChild();
                Debug.Log("Reassigned parent/childs");
                AudioBankWorker.RebuildBanks();
                Debug.Log("All Banks rebuild");
            }

            EditorGUILayout.Separator();
            EditorGUILayout.Separator();
            EditorGUILayout.Separator();

            EditorGUILayout.HelpBox(
                "No nodes should be unused, but in the case there is this will remove all unused data.\nNo performance is lost if unused nodes remains, but it does waste a bit of memory. This will clean up any unused data",
                MessageType.Info);


            if (GUILayout.Button("Clean up unused data"))
            {
                DataCleanup.Cleanup();
            }
            return(false);
        }
Example #2
0
        public static void StartFromScratch(InCommonDataManager Manager)
        {
            SystemFolderHelper.CreateIfMissing(FolderSettings.BankCreateFolder);
            try
            {
                DataCleanup.Cleanup(DataCleanup.CleanupVerbose.Silent);
            }
            catch (Exception)
            {
                //Do nothing as something is seriously wrong
            }


            int        levelSize = 3;
            GameObject audioGO   = new GameObject();
            GameObject eventGO   = new GameObject();
            GameObject busGO     = new GameObject();
            GameObject bankGO    = new GameObject();

            Manager.BusTree      = AudioBusWorker.CreateTree(busGO);
            Manager.BankLinkTree = AudioBankWorker.CreateTree(bankGO);
            Manager.AudioTree    = AudioNodeWorker.CreateTree(audioGO, levelSize, Manager.BusTree);

            Manager.EventTree = AudioEventWorker.CreateTree(eventGO, levelSize);

            SaveAndLoad.CreateDataPrefabs(Manager.AudioTree.gameObject, Manager.EventTree.gameObject, Manager.BusTree.gameObject,
                                          Manager.BankLinkTree.gameObject);

            Manager.Load(true);

            if (Manager.BankLinkTree != null)
            {
                var bankLink = Manager.BankLinkTree.Children[0];
                bankLink.Name     = "Default - Auto loaded";
                bankLink.AutoLoad = true;

                NodeWorker.AssignToNodes(Manager.AudioTree, node =>
                {
                    var data = (node.NodeData as InFolderData);
                    if (data != null)
                    {
                        data.BankLink = Manager.BankLinkTree.GetChildren[0];
                    }
                });

                NodeWorker.AssignToNodes(Manager.AudioTree, node => node.Bus = Manager.BusTree);

                AssetDatabase.Refresh();
                DataCleanup.Cleanup(DataCleanup.CleanupVerbose.Silent);
                EditorApplication.SaveCurrentSceneIfUserWantsTo();
            }
            else
            {
                Debug.LogError("There was a problem creating the data.");
            }
        }
Example #3
0
        public static void StartFromScratch(InCommonDataManager Manager)
        {
            try
            {
                DataCleanup.Cleanup(DataCleanup.CleanupVerbose.Silent);
            }
            catch (Exception)
            {
                Debug.LogError("InAudio: Problem cleaning data before creating project.\nPlease report bug to [email protected] or via the feedback window.");
            }

            CreateAll(Manager);
            Manager.ForceLoad();

            try
            {
                var firstAudioFolder = Manager.AudioTree._children[0];

                AudioNodeWorker.CreateChild(firstAudioFolder, AudioNodeType.Audio, "Empty Example Audio Node");

                var random = AudioNodeWorker.CreateChild(firstAudioFolder, AudioNodeType.Random);
                random.Name = "Random Node Example";
                AudioNodeWorker.CreateChild(random, AudioNodeType.Audio, "Empty Example Audio Node");
                AudioNodeWorker.CreateChild(random, AudioNodeType.Audio, "Empty Example Audio Node");
                AudioNodeWorker.CreateChild(random, AudioNodeType.Audio, "Empty Example Audio Node");

                var multi = AudioNodeWorker.CreateChild(firstAudioFolder, AudioNodeType.Multi, "Multi-Sound Example");
                AudioNodeWorker.CreateChild(multi, AudioNodeType.Audio, "Played simultaneously");
                AudioNodeWorker.CreateChild(multi, AudioNodeType.Audio, "Played simultaneously");

                var sequence = AudioNodeWorker.CreateChild(firstAudioFolder, AudioNodeType.Sequence, "Sequence-Sound Example");
                AudioNodeWorker.CreateChild(sequence, AudioNodeType.Audio, "Played first");
                AudioNodeWorker.CreateChild(sequence, AudioNodeType.Audio, "Played secondly");

                var firstMusicFolder = Manager.MusicTree._children[0];
                var musicGroup       = MusicWorker.CreateMusicGroup(firstMusicFolder, "Example Music Group");
                firstMusicFolder.EditorSettings.IsFoldedOut = true;
                MusicWorker.CreateMusicGroup(musicGroup, "Example Music Group - Layer 1");
                MusicWorker.CreateMusicGroup(musicGroup, "Example Music Group - Layer 2");
                musicGroup.EditorSettings.IsFoldedOut = true;



                var firstEventFolder = Manager.EventTree._children[0];
                firstEventFolder.EditorSettings.IsFoldedOut = true;

                var audioEvent = AudioEventWorker.CreateNode(firstEventFolder, EventNodeType.Event);
                audioEvent.Name = "Playing Music & Random Audio Event";
                var musicAction = AudioEventWorker.AddEventAction <InEventMusicControl>(audioEvent, EventActionTypes.PlayMusic);
                audioEvent.EditorSettings.IsFoldedOut = true;
                musicAction.MusicGroup = musicGroup;
                var action = AudioEventWorker.AddEventAction <InEventAudioAction>(audioEvent, EventActionTypes.Play);
                audioEvent.EditorSettings.IsFoldedOut = true;
                action.Node = random;

                AssetDatabase.Refresh();
                DataCleanup.Cleanup(DataCleanup.CleanupVerbose.Silent);

#if !UNITY_5_2
                EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
                EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo();
#else
                EditorApplication.MarkSceneDirty();
                EditorApplication.SaveCurrentSceneIfUserWantsTo();
#endif
            }
            catch (Exception)
            {
                Debug.LogError("InAudio: There was a problem creating the data.\nPlease report this bug to [email protected] or via the feedback window.");
            }
        }
Example #4
0
        public static void StartFromScratch(InCommonDataManager Manager)
        {
            try
            {
                DataCleanup.Cleanup(DataCleanup.CleanupVerbose.Silent);
            }
            catch (Exception)
            {
                Debug.LogError("InAudio: Problem cleaning data before creating project.\nPlease report bug to [email protected] or via the feedback window.");
            }

            int        levelSize = 3;
            GameObject audioGO   = new GameObject();
            GameObject eventGO   = new GameObject();
            GameObject bankGO    = new GameObject();
            GameObject musicGO   = new GameObject();

            Manager.BankLinkTree = AudioBankWorker.CreateTree(bankGO);
            Manager.AudioTree    = AudioNodeWorker.CreateTree(audioGO, levelSize);
            Manager.MusicTree    = MusicWorker.CreateTree(musicGO, levelSize);
            Manager.EventTree    = AudioEventWorker.CreateTree(eventGO, levelSize);



            SaveAndLoad.CreateDataPrefabs(Manager.AudioTree.gameObject, Manager.MusicTree.gameObject, Manager.EventTree.gameObject, Manager.BankLinkTree.gameObject);

            Manager.Load(true);

            if (Manager.BankLinkTree != null)
            {
                var bankLink = Manager.BankLinkTree._children[0];
                bankLink._name     = "Default - Auto loaded";
                bankLink._autoLoad = true;

                NodeWorker.AssignToNodes(Manager.AudioTree, node =>
                {
                    var data = (node._nodeData as InFolderData);
                    if (data != null)
                    {
                        data.BankLink = Manager.BankLinkTree._getChildren[0];
                    }
                });

                NodeWorker.AssignToNodes(Manager.MusicTree, musicNode =>
                {
                    var folder = musicNode as InMusicFolder;
                    if (folder != null)
                    {
                        folder._bankLink = Manager.BankLinkTree._getChildren[0];
                    }
                });


                var firstAudioFolder = Manager.AudioTree._children[0];

                AudioNodeWorker.CreateChild(firstAudioFolder, AudioNodeType.Audio, "Empty Example Audio Node");

                var random = AudioNodeWorker.CreateChild(firstAudioFolder, AudioNodeType.Random);
                random.Name = "Random Node Example";
                AudioNodeWorker.CreateChild(random, AudioNodeType.Audio, "Empty Example Audio Node");
                AudioNodeWorker.CreateChild(random, AudioNodeType.Audio, "Empty Example Audio Node");
                AudioNodeWorker.CreateChild(random, AudioNodeType.Audio, "Empty Example Audio Node");

                var multi = AudioNodeWorker.CreateChild(firstAudioFolder, AudioNodeType.Multi, "Multi-Sound Example");
                AudioNodeWorker.CreateChild(multi, AudioNodeType.Audio, "Played simultaneously");
                AudioNodeWorker.CreateChild(multi, AudioNodeType.Audio, "Played simultaneously");

                var sequence = AudioNodeWorker.CreateChild(firstAudioFolder, AudioNodeType.Sequence, "Sequence-Sound Example");
                AudioNodeWorker.CreateChild(sequence, AudioNodeType.Audio, "Played first");
                AudioNodeWorker.CreateChild(sequence, AudioNodeType.Audio, "Played secondly");


                var firstEventFolder = Manager.EventTree._children[0];
                firstEventFolder.FoldedOut = true;
                var audioEvent = AudioEventWorker.CreateNode(firstEventFolder, EventNodeType.Event);
                audioEvent.Name = "Playing Random Audio Event";
                var action = AudioEventWorker.AddEventAction <InEventAudioAction>(audioEvent, EventActionTypes.Play);
                audioEvent.FoldedOut = true;
                action.Node          = random;

                var firstMusicFolder = Manager.MusicTree._children[0];
                var musicGroup       = MusicWorker.CreateMusicGroup(firstMusicFolder, "Empty Music Group");
                firstMusicFolder.FoldedOut = true;
                MusicWorker.CreateMusicGroup(musicGroup, "Empty Music Group - Child 1");
                MusicWorker.CreateMusicGroup(musicGroup, "Empty Music Group - Child 2");
                musicGroup.FoldedOut = true;


                AssetDatabase.Refresh();
                DataCleanup.Cleanup(DataCleanup.CleanupVerbose.Silent);

#if !UNITY_5_2
                EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
                EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo();
#else
                EditorApplication.MarkSceneDirty();
                EditorApplication.SaveCurrentSceneIfUserWantsTo();
#endif
            }
            else
            {
                Debug.LogError("InAudio: There was a problem creating the data.\nPlease report this bug to [email protected] or via the feedback window.");
            }
        }