示例#1
0
 public void Clear()
 {
     m_OriginalBuildTarget = UnityEditor.BuildTarget.NoTarget;
     if (m_PrepareQueueBuilds != null)
     {
         m_PrepareQueueBuilds.Clear();
     }
     if (m_QueueBuilds != null)
     {
         m_QueueBuilds.Clear();
     }
     m_OnAllBuildsCompletedEvent = null;
 }
示例#2
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();
        }