예제 #1
0
        public static void Cleanup(CleanupVerbose verbose = CleanupVerbose.Normal)
        {
            int deletedTotal = 0;

            int nodesDeleted = Cleanup(InAudioInstanceFinder.DataManager.AudioTree);

            if (nodesDeleted > 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Deleted " + nodesDeleted + " Unused Audio Nodes");
            }
            deletedTotal += nodesDeleted;

            nodesDeleted = Cleanup(InAudioInstanceFinder.DataManager.EventTree);
            if (nodesDeleted > 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Deleted " + nodesDeleted + " Unused Event Nodes");
            }
            deletedTotal += nodesDeleted;

            nodesDeleted = Cleanup(InAudioInstanceFinder.DataManager.MusicTree);
            if (nodesDeleted > 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Deleted " + nodesDeleted + " Unused Music Nodes");
            }
            deletedTotal += nodesDeleted;

            if (deletedTotal == 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Nothing to clean up");
            }
        }
예제 #2
0
        public static void Cleanup(CleanupVerbose verbose = CleanupVerbose.Normal)
        {
            int deletedTotal = 0;

            var audioRoot = InAudioInstanceFinder.DataManager.AudioTree;

            //Audio node cleanup
            Action <InAudioNode, HashSet <MonoBehaviour> > action = null;

            action = (node, set) =>
            {
                set.Add(node);
                if (node.NodeData != null)
                {
                    set.Add(node.NodeData);
                }
                for (int i = 0; i < node.Children.Count; ++i)
                {
                    action(node.Children[i], set);
                }
            };
            int nodesDeleted = Cleanup(audioRoot, action);

            if (nodesDeleted > 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Deleted " + nodesDeleted + " Unused Audio Nodes");
            }
            deletedTotal += nodesDeleted;

            var eventRoot = InAudioInstanceFinder.DataManager.EventTree;

            //Audio node cleanup
            Action <InAudioEventNode, HashSet <MonoBehaviour> > eventAction = null;

            eventAction = (node, set) =>
            {
                set.Add(node);
                for (int i = 0; i < node.ActionList.Count; ++i)
                {
                    set.Add(node.ActionList[i]);
                }
                for (int i = 0; i < node.Children.Count; ++i)
                {
                    eventAction(node.Children[i], set);
                }
            };
            nodesDeleted = Cleanup(eventRoot, eventAction);
            if (nodesDeleted > 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Deleted " + nodesDeleted + " Unused Event Nodes");
            }
            deletedTotal += nodesDeleted;

            var busRoot = InAudioInstanceFinder.DataManager.BusTree;
            //Audio node cleanup
            Action <InAudioBus, HashSet <MonoBehaviour> > busAction = null;

            busAction = (node, set) =>
            {
                set.Add(node);
                for (int i = 0; i < node.Children.Count; ++i)
                {
                    busAction(node.Children[i], set);
                }
            };
            nodesDeleted = Cleanup(busRoot, busAction);
            if (nodesDeleted > 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Deleted " + nodesDeleted + " Unused Bus Nodes");
            }
            deletedTotal += nodesDeleted;

            nodesDeleted = DeleteUnusedBanks(InAudioInstanceFinder.DataManager.BankLinkTree);

            if (nodesDeleted > 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Deleted " + nodesDeleted + " Unused Audio Banks");
            }
            deletedTotal += nodesDeleted;

            if (deletedTotal == 0 && verbose == CleanupVerbose.Normal)
            {
                Debug.Log("Nothing to clean up");
            }
        }