예제 #1
0
        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();
        }
예제 #2
0
 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;
 }