You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
8.6 KiB
202 lines
8.6 KiB
// Author: Daniele Giardini - http://www.demigiant.com |
|
// Created: 2018/07/13 |
|
|
|
#if true // MODULE_MARKER |
|
using System; |
|
using DG.Tweening.Core; |
|
using DG.Tweening.Plugins.Options; |
|
using UnityEngine; |
|
#if UNITY_5 || UNITY_2017_1_OR_NEWER |
|
using UnityEngine.Audio; // Required for AudioMixer |
|
#endif |
|
|
|
#pragma warning disable 1591 |
|
namespace DG.Tweening |
|
{ |
|
public static class DOTweenModuleAudio |
|
{ |
|
#region Shortcuts |
|
|
|
#region Audio |
|
|
|
/// <summary>Tweens an AudioSource's volume to the given value. |
|
/// Also stores the AudioSource as the tween's target so it can be used for filtered operations</summary> |
|
/// <param name="endValue">The end value to reach (0 to 1)</param><param name="duration">The duration of the tween</param> |
|
public static TweenerCore<float, float, FloatOptions> DOFade(this AudioSource target, float endValue, float duration) |
|
{ |
|
if (endValue < 0) endValue = 0; |
|
else if (endValue > 1) endValue = 1; |
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration); |
|
t.SetTarget(target); |
|
return t; |
|
} |
|
|
|
/// <summary>Tweens an AudioSource's pitch to the given value. |
|
/// Also stores the AudioSource as the tween's target so it can be used for filtered operations</summary> |
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param> |
|
public static TweenerCore<float, float, FloatOptions> DOPitch(this AudioSource target, float endValue, float duration) |
|
{ |
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration); |
|
t.SetTarget(target); |
|
return t; |
|
} |
|
|
|
#endregion |
|
|
|
#if UNITY_5 || UNITY_2017_1_OR_NEWER |
|
#region AudioMixer (Unity 5 or Newer) |
|
|
|
/// <summary>Tweens an AudioMixer's exposed float to the given value. |
|
/// Also stores the AudioMixer as the tween's target so it can be used for filtered operations. |
|
/// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer.</summary> |
|
/// <param name="floatName">Name given to the exposed float to set</param> |
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param> |
|
public static TweenerCore<float, float, FloatOptions> DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) |
|
{ |
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(()=> { |
|
float currVal; |
|
target.GetFloat(floatName, out currVal); |
|
return currVal; |
|
}, x=> target.SetFloat(floatName, x), endValue, duration); |
|
t.SetTarget(target); |
|
return t; |
|
} |
|
|
|
#region Operation Shortcuts |
|
|
|
/// <summary> |
|
/// Completes all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens completed |
|
/// (meaning the tweens that don't have infinite loops and were not already complete) |
|
/// </summary> |
|
/// <param name="withCallbacks">For Sequences only: if TRUE also internal Sequence callbacks will be fired, |
|
/// otherwise they will be ignored</param> |
|
public static int DOComplete(this AudioMixer target, bool withCallbacks = false) |
|
{ |
|
return DOTween.Complete(target, withCallbacks); |
|
} |
|
|
|
/// <summary> |
|
/// Kills all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens killed. |
|
/// </summary> |
|
/// <param name="complete">If TRUE completes the tween before killing it</param> |
|
public static int DOKill(this AudioMixer target, bool complete = false) |
|
{ |
|
return DOTween.Kill(target, complete); |
|
} |
|
|
|
/// <summary> |
|
/// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens flipped. |
|
/// </summary> |
|
public static int DOFlip(this AudioMixer target) |
|
{ |
|
return DOTween.Flip(target); |
|
} |
|
|
|
/// <summary> |
|
/// Sends to the given position all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens involved. |
|
/// </summary> |
|
/// <param name="to">Time position to reach |
|
/// (if higher than the whole tween duration the tween will simply reach its end)</param> |
|
/// <param name="andPlay">If TRUE will play the tween after reaching the given position, otherwise it will pause it</param> |
|
public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) |
|
{ |
|
return DOTween.Goto(target, to, andPlay); |
|
} |
|
|
|
/// <summary> |
|
/// Pauses all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens paused. |
|
/// </summary> |
|
public static int DOPause(this AudioMixer target) |
|
{ |
|
return DOTween.Pause(target); |
|
} |
|
|
|
/// <summary> |
|
/// Plays all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens played. |
|
/// </summary> |
|
public static int DOPlay(this AudioMixer target) |
|
{ |
|
return DOTween.Play(target); |
|
} |
|
|
|
/// <summary> |
|
/// Plays backwards all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens played. |
|
/// </summary> |
|
public static int DOPlayBackwards(this AudioMixer target) |
|
{ |
|
return DOTween.PlayBackwards(target); |
|
} |
|
|
|
/// <summary> |
|
/// Plays forward all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens played. |
|
/// </summary> |
|
public static int DOPlayForward(this AudioMixer target) |
|
{ |
|
return DOTween.PlayForward(target); |
|
} |
|
|
|
/// <summary> |
|
/// Restarts all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens restarted. |
|
/// </summary> |
|
public static int DORestart(this AudioMixer target) |
|
{ |
|
return DOTween.Restart(target); |
|
} |
|
|
|
/// <summary> |
|
/// Rewinds all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens rewinded. |
|
/// </summary> |
|
public static int DORewind(this AudioMixer target) |
|
{ |
|
return DOTween.Rewind(target); |
|
} |
|
|
|
/// <summary> |
|
/// Smoothly rewinds all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens rewinded. |
|
/// </summary> |
|
public static int DOSmoothRewind(this AudioMixer target) |
|
{ |
|
return DOTween.SmoothRewind(target); |
|
} |
|
|
|
/// <summary> |
|
/// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference |
|
/// (meaning tweens that were started from this target, or that had this target added as an Id) |
|
/// and returns the total number of tweens involved. |
|
/// </summary> |
|
public static int DOTogglePause(this AudioMixer target) |
|
{ |
|
return DOTween.TogglePause(target); |
|
} |
|
|
|
#endregion |
|
|
|
#endregion |
|
#endif |
|
|
|
#endregion |
|
} |
|
} |
|
#endif
|
|
|