private void StateSelect() { switch (state) { case State.Off: for (int i = 0; i < _sphereCount; i++) { _spheresMaterials[i].SetColor("_EmissionColor", colorOff); } break; case State.OnAmplitude: for (int i = 0; i < _sphereCount; i++) { if (audioPeer.GetAudioBandBuffer(i) > threshold) { _spheresMaterials[i].SetColor("_EmissionColor", _colorOn[i] * emissionMultiplier * audioPeer.GetAudioBandBuffer(i)); } else { _spheresMaterials[i].SetColor("_EmissionColor", colorOff); } } break; } }
private void AudioBehavior() { for (int i = 0; i < initiatorPointAmount; i++) { Color colorLerp = Color.Lerp(_startColor, trails[i].EmisssionColor * colorMultiplier, audioPeer.GetAudioBand(audioBand[i])); trails[i].Trail.material.SetColor("_EmissionColor", colorLerp); colorLerp = Color.Lerp(_startColor, _endColor, audioPeer.GetAudioBand(audioBand[i])); trails[i].Trail.material.SetColor("Color", colorLerp); float widthLerp = Mathf.Lerp(widthMinMax.x, widthMinMax.y, audioPeer.GetAudioBandBuffer(audioBand[i])); trails[i].Trail.widthMultiplier = widthLerp; float timeLerp = Mathf.Lerp(trailTimeMinMax.x, trailTimeMinMax.y, audioPeer.GetAudioBandBuffer(audioBand[i])); trails[i].Trail.time = timeLerp; } }
private void Update() { if (colorOnAudio) { if (useBufferOnColor) { _matInstance.SetColor("_TintColor", color * audioPeer.GetAudioBandBuffer(audioBandMaterial) * emissionMultiplier); _matInstance.SetColor("_EmissionColor", color * audioPeer.GetAudioBandBuffer(audioBandMaterial) * emissionMultiplier); } else { _matInstance.SetColor("_TintColor", color * audioPeer.GetAudioBand(audioBandMaterial) * emissionMultiplier); _matInstance.SetColor("_EmissionColor", color * audioPeer.GetAudioBand(audioBandMaterial) * emissionMultiplier); } } if (generationCount != 0) { int count = 0; for (int i = 0; i < initiatorPointAmount; i++) { _lerpAudio[i] = audioPeer.GetAudioBandBuffer(audioBand[i]); for (int j = 0; j < (positions.Length - 1) / initiatorPointAmount; j++) { _lerpPosition[count] = Vector3.Lerp(positions[count], targetPosition[count], _lerpAudio[i]); count++; } } _lerpPosition[count] = Vector3.Lerp(positions[count], targetPosition[count], _lerpAudio[initiatorPointAmount - 1]); if (useBezierCurves) { bezierPosition = BezierCurve(_lerpPosition, bezierVertexCount); _lineRenderer.positionCount = bezierPosition.Length; _lineRenderer.SetPositions(bezierPosition); } else { _lineRenderer.positionCount = _lerpPosition.Length; _lineRenderer.SetPositions(_lerpPosition); } } }
void Update() { float amplitude = (useBuffer) ? audioPeer.GetAmplitudeBuffer() : audioPeer.GetAmplitude(); float audioBand = (useBuffer) ? audioPeer.GetAudioBandBuffer(band) : audioPeer.GetAudioBand(band); float frequencyBand = (useBuffer) ? audioPeer.GetFrequencyBandBuffer(band) : audioPeer.GetFrequencyBand(band); Color colour = cached_Material.GetColor("_Color"); Vector3 localScale = (useAmplitude) ? new Vector3(amplitude * scale, amplitude * scale, amplitude * scale) : new Vector3(1.0f, 1.0f + frequencyBand * scale, 1.0f); Color emissionColor = (useAmplitude) ? new Color(amplitude, amplitude, amplitude) : new Color(audioBand, audioBand, audioBand); transform.localScale = localScale; cached_Material.SetColor("_EmissionColor", colour * emissionColor); }