Пример #1
0
    bool GetEffectSentido()
    {
        int clockwise = 0;
        int counter   = 0;

        for (int i = precision; i < m_panPoints.Count - precision; i++)
        {
            PanInfo p     = m_panPoints[i];
            PanInfo p_    = m_panPoints[i - precision];
            PanInfo p1    = m_panPoints[i + precision];
            Vector2 a     = p_.Position - p.Position;
            Vector2 b     = p.Position - p1.Position;
            Vector3 cross = Vector3.Cross(a, b);

            if (cross.z > 0)
            {
                clockwise++;
            }
            else
            {
                counter++;
            }
        }
        return(clockwise > counter);
    }
Пример #2
0
    void addPoint(PanInfo _panInfo)
    {
        if (m_panPoints.Count == 0 && !GameplayService.IsGoalkeeper())
        {
            PanInfo info = new PanInfo(Camera.main.WorldToScreenPoint(BallPhysics.instance.transform.position), Time.time);
            m_panPoints.Add(info);
        }
        else
        {
            m_panPoints.Add(_panInfo);
        }

        /*float d = m_panPoints[0].Position.x - _panInfo.Position.x;
         * float ad = Mathf.Abs(d);
         *
         * if (ad > m_maxAbsEffect) {
         * m_maxAbsEffect = ad;
         * m_maxEffect = d;
         * }*/
    }
Пример #3
0
            public bool MixNow(float[] audioBuffer)
            {
                int  length    = GATInfo.AudioBufferSizePerChannel - OffsetInBuffer;
                bool shouldMix = true;

                if (length > _count - NextIndex)
                {
                    length      = _count - NextIndex;
                    IsLastChunk = true;
                }

                if (_onShouldMixSample != null)
                {
                    shouldMix = _onShouldMixSample(this, length, audioBuffer);
                }

                if (shouldMix)
                {
                    if (_fadeStart > -1 && (NextIndex + length > _fadeStart))
                    {
                        int   fadeLength = length;
                        float fromGain, toGain;
                        int   fadeOffsetInProcBuf;
                        CacheToProcessingBuffer(length);

                        if (NextIndex < _fadeStart)
                        {
                            fadeLength = NextIndex + length - _fadeStart;
                            fromGain   = _gain;
                            toGain     = Mathf.Lerp(_gain, 0f, ( float )fadeLength / _fadeSamples);

                            fadeOffsetInProcBuf = _fadeStart - NextIndex;
                            __processingBuffer.Gain(0, fadeOffsetInProcBuf, _gain);
                            __processingBuffer.SmoothedGain(fadeOffsetInProcBuf, fadeLength, fromGain, toGain);
                        }
                        else
                        {
                            int fadeOffset = NextIndex - _fadeStart;
                            fromGain = Mathf.Lerp(_gain, 0f, ( float )fadeOffset / _fadeSamples);
                            toGain   = Mathf.Lerp(_gain, 0f, ( float )(fadeOffset + fadeLength) / _fadeSamples);
                            __processingBuffer.SmoothedGain(0, fadeLength, fromGain, toGain);
                        }

                        if (ReferenceEquals(_track, null) == false)
                        {
                            _track.MixFrom(__processingBuffer, 0, OffsetInBuffer, length, 1f);
                        }
                        else
                        {
                            PanInfo.PanMixProcessingBuffer(this, length, audioBuffer, 1f);
                        }
                    }
                    else
                    {
                        if (ReferenceEquals(_track, null) == false)
                        {
                            _track.MixFrom(AudioData, NextIndex, OffsetInBuffer, length, _gain);
                        }
                        else
                        {
                            PanInfo.PanMixSample(this, length, audioBuffer, _gain);
                        }
                    }

                    NextIndex += length;
                }

                if (IsFirstChunk)
                {
                    IsFirstChunk   = false;
                    OffsetInBuffer = 0;
                }

                if (IsLastChunk)
                {
                    shouldBeRemoved = true;
                }

                return(shouldBeRemoved);
            }