示例#1
0
        public void OnChange(IScriptableVariable <float> variable)
        {
            var nextClipList = GetNext();

            _nextClipList = nextClipList;
            if (_nextClipList != null && _nextClipList.PlayAudioClipList == _currentClipList)
            {
                if (_currentClipList != null)
                {
                    _currentClipList.Shedule = null;
                }
                return;
            }

            if (_currentClipList != null)
            {
                if (_nextClipList == null)
                {
                    StartCoroutine(Stop());
                }
                else if (_nextClipList.Transition == TransitionType.Cut)
                {
                    _currentClipList.Stop();
                    PlayNext();
                }
                else if (_nextClipList.Transition == TransitionType.Transition)
                {
                    Debug.Log(_currentClipList);
                    Debug.Log(_currentClipList.CurrentTime);
                    var position = _currentClipList.CurrentTime;
                    _currentClipList.FadeOut(_transitionDuration);
                    PlayNext();
                    position %= _currentClipList.Length;
                    _currentClipList.FadeIn(_transitionDuration, position);
                }
                else
                {
                    _currentClipList.Shedule = this;
                }
            }
            else
            {
                PlayNext();
            }

            _lastClipList = nextClipList;
        }
示例#2
0
        public void OnChange(IScriptableVariable <float> variable)
        {
            var   input  = Mathf.Clamp01(_floatScriptable.Value);
            float volume = 0f;

            if (input > _fadeIn.x && input < _fadeIn.y)
            {
                volume = (input - _fadeIn.x) / _fadeIn.y;
            }
            else if (input >= _fadeIn.y && input <= _fadeOut.x)
            {
                volume = 1f;
            }
            else if (input > _fadeOut.x && input < _fadeOut.y)
            {
                volume = 1f - (input - _fadeOut.x) / _fadeOut.y;
            }

            _playAudioClipList.Volume = volume;
        }
 public void OnChange(IScriptableVariable <float> variable)
 {
     _text.text = _floatScriptable.Value.ToString("F2");
 }