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(); }