示例#1
0
        public void FlushBuilds(UnityAction <BuildPipelineResult[]> onAllBuildsCompleted)
        {
            if (m_PrepareQueueBuilds == null || m_PrepareQueueBuilds.Count == 0)
            {
                return;
            }
            m_QueueBuilds.Clear();
            m_QueueBuilds.AddRange(m_PrepareQueueBuilds);
            m_PrepareQueueBuilds = null;

            m_OriginalBuildTarget       = EditorUserBuildSettings.activeBuildTarget;
            m_OnAllBuildsCompletedEvent = new OnAllBuildsCompletedEvent();
            if (onAllBuildsCompleted != null)
            {
                UnityEventTools.AddPersistentListener(m_OnAllBuildsCompletedEvent, onAllBuildsCompleted);
                m_OnAllBuildsCompletedEvent.SetPersistentListenerState(m_OnAllBuildsCompletedEvent.GetPersistentEventCount() - 1, UnityEventCallState.EditorAndRuntime);
            }
            var sorter = new BuildStorter(m_OriginalBuildTarget);

            m_QueueBuilds.Sort(sorter.Compare);
            ProcessBuilds();
        }