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); }
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; * }*/ }
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); }