示例#1
0
        // UPDATE: --------------------------------------------------------------------------------

        public void Update()
        {
            if (this.audio.clip == null)
            {
                return;
            }

            if (this.state == AUDIO_STATE.FADE_IN)
            {
                float t = (Time.time - this.stateTime) / this.stateDuration;

                this.audio.volume = Mathf.Lerp(0.0f, 1.0f, t) * this.maxVolume;
                if (t >= 1.0f)
                {
                    this.state = AUDIO_STATE.NORMAL;
                }
            }
            else if (this.state == AUDIO_STATE.FADE_OUT)
            {
                float t = (Time.time - this.stateTime) / this.stateDuration;
                this.audio.volume = Mathf.Lerp(1.0f, 0.0f, t) * this.maxVolume;
                if (t >= 1.0f)
                {
                    this.state = AUDIO_STATE.NORMAL;
                    this.audio.Stop();
                }
            }
            else
            {
                this.audio.volume = this.maxVolume;
            }
        }
示例#2
0
        // INITIALIZE: ----------------------------------------------------------------------------

        public AudioBuffer(AudioSource audio, float maxVolume)
        {
            this.audio     = audio;
            this.maxVolume = maxVolume;

            this.state         = AUDIO_STATE.NORMAL;
            this.stateTime     = -100.0f;
            this.stateDuration = 0.0f;
        }
示例#3
0
 public void Stop(float fadeOut = 0.0f)
 {
     if (Mathf.Approximately(fadeOut, 0.0f))
     {
         this.audio.Stop();
         this.state         = AUDIO_STATE.NORMAL;
         this.stateTime     = -100.0f;
         this.stateDuration = 0.0f;
     }
     else
     {
         this.state         = AUDIO_STATE.FADE_OUT;
         this.stateTime     = Time.time;
         this.stateDuration = fadeOut;
     }
 }
示例#4
0
        // PUBLIC METHODS: ------------------------------------------------------------------------

        public void Play(AudioClip audioClip, float fadeIn = 0.0f)
        {
            this.audio.clip = audioClip;
            this.audio.Play();

            if (Mathf.Approximately(fadeIn, 0.0f))
            {
                this.state         = AUDIO_STATE.NORMAL;
                this.stateTime     = -100.0f;
                this.stateDuration = 0.0f;
            }
            else
            {
                this.state         = AUDIO_STATE.FADE_IN;
                this.stateTime     = Time.time;
                this.stateDuration = fadeIn;
                this.audio.volume  = 0.0f;
            }
        }