public BuildProcess BuildAsync() { string errors = null; if (!CanBuild(ref errors)) { Debug.LogError(errors); return(null); } BuildStarted?.Invoke(); m_CurrentBuildProcess = new BuildProcess(this); m_CurrentBuildProcess.BuildStopped += OnBuildStopped; return(m_CurrentBuildProcess); }
void UpdateBuildProcess() { m_BuildProcess.FrameUpdate(); if (m_BuildProcess.IsFinished) { m_BuildProcess.Builder.progressFeedback -= DisplayProgressBar; EditorApplication.update -= UpdateBuildProcess; m_BuildProcess.Dispose(); m_BuildProcess = null; HideProgressBar(); DisplayCancelBuildButton(false); SetAssetEditingEnabled(true); } }
/// <summary> /// Builds the binary for this asset /// </summary> public void BuildSync() { EditorUtility.DisplayProgressBar($"Building Kinematica Asset {name}.asset", "", 0.0f); using (BuildProcess buildProcess = BuildAsync()) { BuildStarted?.Invoke(); buildProcess.Builder.progressFeedback += progressInfo => EditorUtility.DisplayProgressBar($"Building Kinematica Asset {name}.asset", progressInfo.title, progressInfo.progress); while (!buildProcess.IsFinished) { buildProcess.FrameUpdate(); } BuildStopped?.Invoke(); } EditorUtility.ClearProgressBar(); }
void OnBuildStopped() { m_CurrentBuildProcess.BuildStopped -= OnBuildStopped; m_CurrentBuildProcess = null; BuildStopped?.Invoke(); }