Facebook
From Cobalt Owl, 3 Years ago, written in C#.
Embed
Download Paste or View Raw
Hits: 45
  1.         protected EnvironmentalNoiseParameter[] _environmentalNoiseParameters;
  2.  
  3.         private UpdateParam[] _updateParams;
  4.         private float _currentDelay;
  5.         private float _targetDelay;
  6.         private int _paramIndex;        
  7.  
  8. private void Update()
  9.         {
  10.             if (!IsPlaying)
  11.                 return;
  12.  
  13.             if(_updateParams.Length <= 0)
  14.                 return;
  15.            
  16.             if (_paramIndex < 0)
  17.                 _paramIndex = 0;
  18.  
  19.             _targetDelay = _updateParams[_paramIndex].Delay;
  20.  
  21.             Debug.LogError(
  22.                 $"Name - {_updateParams[_paramIndex].Name}, Value - {_updateParams[_paramIndex].Value} Delay - {_updateParams[_paramIndex].Delay}");
  23.  
  24.             if (_currentDelay < _targetDelay)
  25.             {
  26.                 _currentDelay += Time.deltaTime;
  27.             }
  28.             else
  29.             {
  30.                 var param = _soundEventEmitter.Params.Single(p => p.Name == _updateParams[_paramIndex].Name);
  31.                 var envParam =
  32.                     _environmentalNoiseParameters.Single(p => p.ParameterName == _updateParams[_paramIndex].Name);
  33.  
  34.                 param.Value = _updateParams[_paramIndex].Value;
  35.                 _soundEventEmitter.SetParameter(param.Name, param.Value);
  36.                 _soundEventEmitter.EventInstance.release();
  37.  
  38.                 _updateParams[_paramIndex].Value =
  39.                     Random.Range(envParam.ParameterValueRangeMin, envParam.ParameterValueRangeMax);
  40.                 _updateParams[_paramIndex].Delay = Random.Range(envParam.FrequencyRangeMin, envParam.FrequencyRangeMax);
  41.  
  42.                 _paramIndex++;
  43.  
  44.                 if (_paramIndex >= _updateParams.Length)
  45.                 {
  46.                     _paramIndex = 0;
  47.                     _currentDelay = 0f;
  48.  
  49.                     _updateParams = _updateParams.OrderBy(p => p.Delay).ToArray();
  50.                 }
  51.             }
  52.         }
  53.