UnityEditor.AudioSourceInspector.Logarithmic C# (CSharp) Méthode

Logarithmic() private static méthode

private static Logarithmic ( float timeStart, float timeEnd, float logBase ) : AnimationCurve
timeStart float
timeEnd float
logBase float
Résultat UnityEngine.AnimationCurve
        private static AnimationCurve Logarithmic(float timeStart, float timeEnd, float logBase)
        {
            float num;
            float num2;
            float num3;
            List<Keyframe> list = new List<Keyframe>();
            float num4 = 2f;
            timeStart = Mathf.Max(timeStart, 0.0001f);
            for (float i = timeStart; i < timeEnd; i *= num4)
            {
                num = LogarithmicValue(i, timeStart, logBase);
                num3 = i / 50f;
                num2 = (LogarithmicValue(i + num3, timeStart, logBase) - LogarithmicValue(i - num3, timeStart, logBase)) / (num3 * 2f);
                list.Add(new Keyframe(i, num, num2, num2));
            }
            num = LogarithmicValue(timeEnd, timeStart, logBase);
            num3 = timeEnd / 50f;
            num2 = (LogarithmicValue(timeEnd + num3, timeStart, logBase) - LogarithmicValue(timeEnd - num3, timeStart, logBase)) / (num3 * 2f);
            list.Add(new Keyframe(timeEnd, num, num2, num2));
            return new AnimationCurve(list.ToArray());
        }

Usage Example

Exemple #1
0
        private CurveWrapper[] GetCurveWrapperArray()
        {
            List <CurveWrapper> list = new List <CurveWrapper>();

            AudioSourceInspector.AudioCurveWrapper[] audioCurves = this.m_AudioCurves;
            for (int i = 0; i < audioCurves.Length; i++)
            {
                AudioSourceInspector.AudioCurveWrapper audioCurveWrapper = audioCurves[i];
                if (audioCurveWrapper.curveProp != null)
                {
                    AnimationCurve animationCurve = audioCurveWrapper.curveProp.animationCurveValue;
                    bool           flag;
                    if (audioCurveWrapper.type == AudioSourceInspector.AudioCurveType.Volume)
                    {
                        AudioRolloffMode enumValueIndex = (AudioRolloffMode)this.m_RolloffMode.enumValueIndex;
                        if (this.m_RolloffMode.hasMultipleDifferentValues)
                        {
                            flag = false;
                        }
                        else if (enumValueIndex == AudioRolloffMode.Custom)
                        {
                            flag = !audioCurveWrapper.curveProp.hasMultipleDifferentValues;
                        }
                        else
                        {
                            flag = (!this.m_MinDistance.hasMultipleDifferentValues && !this.m_MaxDistance.hasMultipleDifferentValues);
                            if (enumValueIndex == AudioRolloffMode.Linear)
                            {
                                animationCurve = AnimationCurve.Linear(this.m_MinDistance.floatValue / this.m_MaxDistance.floatValue, 1f, 1f, 0f);
                            }
                            else if (enumValueIndex == AudioRolloffMode.Logarithmic)
                            {
                                animationCurve = AudioSourceInspector.Logarithmic(this.m_MinDistance.floatValue / this.m_MaxDistance.floatValue, 1f, 1f);
                            }
                        }
                    }
                    else
                    {
                        flag = !audioCurveWrapper.curveProp.hasMultipleDifferentValues;
                    }
                    if (flag)
                    {
                        if (animationCurve.length == 0)
                        {
                            Debug.LogError(audioCurveWrapper.legend.text + " curve has no keys!");
                        }
                        else
                        {
                            list.Add(this.GetCurveWrapper(animationCurve, audioCurveWrapper));
                        }
                    }
                }
            }
            return(list.ToArray());
        }
All Usage Examples Of UnityEditor.AudioSourceInspector::Logarithmic