Ejemplo n.º 1
0
        public void Unpause()
        {
            _isPaused = false;

            if (_clipSchedEndTime.HasValue)
            {
                var timePaused = AudioSettings.dspTime - _pauseTime;
                _clipSchedEndTime += timePaused;
                VarAudio.SetScheduledEndTime(_clipSchedEndTime.Value);
            }
        }
Ejemplo n.º 2
0
        private void PlaySoundAndWait()
        {
            if (VarAudio.clip == null)   // in case the warming sound is an "internet file"
            {
                return;
            }

            double startTime = AudioSettings.dspTime;

            if (GrpVariation.PlaySoundParm.TimeToSchedulePlay.HasValue)
            {
                startTime = GrpVariation.PlaySoundParm.TimeToSchedulePlay.Value;
            }

            var delayTime = 0f;

            if (GrpVariation.useIntroSilence && GrpVariation.introSilenceMax > 0f)
            {
                var rndSilence = Random.Range(GrpVariation.introSilenceMin, GrpVariation.introSilenceMax);
                delayTime += rndSilence;
            }

            delayTime += GrpVariation.PlaySoundParm.DelaySoundTime;

            if (delayTime > 0f)
            {
                startTime += delayTime;
            }

            VarAudio.PlayScheduled(startTime);

            AudioUtil.ClipPlayed(VarAudio.clip, GrpVariation.GameObj);

            if (GrpVariation.useRandomStartTime)
            {
                VarAudio.time = ClipStartPosition;

                if (!VarAudio.loop)   // don't stop it if it's going to loop.
                {
                    var playableLength = AudioUtil.AdjustAudioClipDurationForPitch(ClipEndPosition - ClipStartPosition, VarAudio);
                    _clipSchedEndTime = startTime + playableLength;
                    VarAudio.SetScheduledEndTime(_clipSchedEndTime.Value);
                }
            }

            GrpVariation.LastTimePlayed = AudioUtil.Time;

            DuckIfNotSilent();

            _isPlayingBackward = GrpVariation.OriginalPitch < 0;
            _lastFrameClipTime = _isPlayingBackward ? ClipEndPosition + 1 : -1f;

            _waitMode = WaitForSoundFinishMode.WaitForEnd;
        }