예제 #1
0
 /*
  * -----------------------
  * BlendWithCurrentSnapshot()
  * -----------------------
  */
 public static void BlendWithCurrentSnapshot(MixerSnapshot blendSnapshot, float weight, float blendTime = 0.0f)
 {
     if (theAudioManager != null)
     {
         if (theAudioManager.audioMixer == null)
         {
             Debug.LogWarning("[AudioManager] can't call BlendWithCurrentSnapshot if the audio mixer is not set!");
             return;
         }
         if (blendTime == 0.0f)
         {
             blendTime = Time.deltaTime;
         }
         if ((theAudioManager.currentSnapshot != null) && (theAudioManager.currentSnapshot.snapshot != null))
         {
             if ((blendSnapshot != null) && (blendSnapshot.snapshot != null))
             {
                 weight = Mathf.Clamp01(weight);
                 if (weight == 0.0f)
                 {
                     // revert to the default snapshot
                     theAudioManager.currentSnapshot.snapshot.TransitionTo(blendTime);
                 }
                 else
                 {
                     AudioMixerSnapshot[] snapshots = new AudioMixerSnapshot[] { theAudioManager.currentSnapshot.snapshot, blendSnapshot.snapshot };
                     float[] weights = new float[] { 1.0f - weight, weight };
                     theAudioManager.audioMixer.TransitionToSnapshots(snapshots, weights, blendTime);
                 }
             }
         }
     }
 }
예제 #2
0
        /*
         * -----------------------
         * SetCurrentSnapshot()
         * -----------------------
         */
        public static void SetCurrentSnapshot(MixerSnapshot mixerSnapshot)
        {
#if UNITY_EDITOR
            if (mixerSnapshot == null || mixerSnapshot.snapshot == null)
            {
                Debug.LogError("[AudioManager] ERROR setting empty mixer snapshot!");
            }
            else
            {
                Debug.Log("[AudioManager] Setting audio mixer snapshot: " + ((mixerSnapshot != null && mixerSnapshot.snapshot != null) ? mixerSnapshot.snapshot.name : "None") + " Time: " + Time.time);
            }
#endif
            if (theAudioManager != null)
            {
                if ((mixerSnapshot != null) && (mixerSnapshot.snapshot != null))
                {
                    mixerSnapshot.snapshot.TransitionTo(mixerSnapshot.transitionTime);
                }
                else
                {
                    mixerSnapshot = null;
                }
                theAudioManager.currentSnapshot = mixerSnapshot;
            }
        }