void DisplayProgressBarAndCancel() { BakedReverb bakedReverb = serializedObject.targetObject as BakedReverb; if (bakedReverb.bakeStatus != BakeStatus.InProgress) { return; } float progress = bakedReverb.probeBoxBakingProgress + .01f; //Adding an offset because progress bar when it is exact 0 has some non-zero progress. int progressPercent = Mathf.FloorToInt(Mathf.Min(progress * 100.0f, 100.0f)); string progressString = "Baking " + bakedReverb.probeBoxBakingCurrently + "/" + bakedReverb.totalProbeBoxes + " Probe Box (" + progressPercent.ToString() + "% complete)"; EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(" "); EditorGUI.ProgressBar(EditorGUILayout.GetControlRect(), progress, progressString); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("Cancel Bake")) { bakedReverb.cancelBake = true; // Ensures partial baked data is not serialized and that bake is properly cancelled for multiple probe boxes. PhononCore.iplCancelBake(); bakedReverb.EndBake(); oneBakeActive = false; bakedReverb.cancelBake = false; Debug.Log("CANCELLED: Baking reverb effect."); } EditorGUILayout.EndHorizontal(); Repaint(); }
public void CancelBake() { cancelBake = true; // Ensures partial baked data is not serialized and that bake is properly cancelled for multiple probe boxes. PhononCore.iplCancelBake(); EndBake(); oneBakeActive = false; cancelBake = false; }