コード例 #1
0
ファイル: KochLine.cs プロジェクト: eyalgever/SpectrumAudio
    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);
            }
        }
    }
コード例 #2
0
    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);
    }
コード例 #3
0
ファイル: KochTrails.cs プロジェクト: eyalgever/SpectrumAudio
    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;
        }
    }
コード例 #4
0
    private void Update()
    {
        if (_useScaleAnimation)
        {
            if (_useScaleCurve)
            {
                _scaleTimer += (_scaleAnimSpeed * _audioPeer.GetAudioBand(_scaleBand)) * Time.deltaTime;
                if (_scaleTimer >= 1)
                {
                    _scaleTimer -= 1;
                }

                _currentScale = Mathf.Lerp(_scaleAnimMinMax.x, _scaleAnimMinMax.y,
                                           _scaleAnimCurve.Evaluate(_scaleTimer));
            }
            else
            {
                _currentScale = Mathf.Lerp(_scaleAnimMinMax.x, _scaleAnimMinMax.y, _audioPeer.GetAudioBand(_scaleBand));
            }
        }

        if (_useLerping)
        {
            if (_isLerping)
            {
                _lerpPosSpeed = Mathf.Lerp(_lerpPosSpeedMinMax.x, _lerpPosSpeedMinMax.y,
                                           _lerpPosAnimCurve.Evaluate(_audioPeer.GetAudioBand(_lerpBand)));
                _lerpPosTimer          += Time.deltaTime * _lerpPosSpeed;
                transform.localPosition = Vector3.Lerp(_startPosition, _endPosition, Mathf.Clamp01(_lerpPosTimer));
                if (_lerpPosTimer >= 1)
                {
                    _lerpPosTimer -= 1;

                    if (_forward)
                    {
                        _number += _stepSize;
                        _currentIteration++;
                    }
                    else
                    {
                        _number -= _stepSize;
                        _currentIteration--;
                    }

                    if ((_currentIteration > 0) && (_currentIteration < _maxIteration))
                    {
                        SetLerpPositions();
                    }
                    else
                    {
                        if (_repeat)
                        {
                            if (_invert)
                            {
                                _forward = !_forward;
                                SetLerpPositions();
                            }
                            else
                            {
                                _number           = _numberStart;
                                _currentIteration = 0;
                                SetLerpPositions();
                            }
                        }
                        else
                        {
                            _isLerping = false;
                        }
                    }
                }
            }
        }

        if (!_useLerping)
        {
            _phyllotaxisPosition    = CalculatePhyllotaxis(_degree, _currentScale, _number);
            transform.localPosition = new Vector3(_phyllotaxisPosition.x, _phyllotaxisPosition.y, 0);
            _number += _stepSize;
            _currentIteration++;
        }
    }