public static float InOutQuad(OscillationSettings settings, float time)
        {
            float phase = (settings.Frequency * time + settings.Offset) % 1f;
            float value;

            if (phase < settings.Ratio)
                value = TweenUtility.InOutQuad(phase / settings.Ratio);
            else
                value = TweenUtility.InOutQuad(1f - (phase - settings.Ratio) / (1f - settings.Ratio));

            return settings.Amplitude * (value * 2f - 1f) + settings.Center;
        }
Пример #2
0
        public static Vector2[] ToPoints(OscillationSettings settings, int definition)
        {
            var points = new Vector2[definition];

            for (int i = 0; i < definition; i++)
            {
                float ratio = (float)i / definition;
                points[i] = new Vector2(ratio, Oscillate(settings, ratio));
            }

            return(points);
        }
Пример #3
0
        public static float OutQuad(OscillationSettings settings, float time)
        {
            float phase = (settings.Frequency * time + settings.Offset) % 1f;
            float value;

            if (phase < settings.Ratio)
            {
                value = TweenUtility.OutQuad(phase / settings.Ratio);
            }
            else
            {
                value = TweenUtility.OutQuad(1f - (phase - settings.Ratio) / (1f - settings.Ratio));
            }

            return(settings.Amplitude * (value * 2f - 1f) + settings.Center);
        }
Пример #4
0
 public static float Sawtooth(OscillationSettings settings, float time)
 {
     return(settings.Amplitude * PMath.Triangle(settings.Frequency * time + settings.Offset, 1f) + settings.Center);
 }
Пример #5
0
 public static float Sine(OscillationSettings settings, float time)
 {
     return(settings.Amplitude * Mathf.Sin(settings.Frequency * 2f * Mathf.PI * time + settings.Offset) + settings.Center);
 }
Пример #6
0
 public static float Oscillate(OscillationSettings settings, float time)
 {
     return(GetWaveFunction(settings.WaveShape)(settings, time));
 }
Пример #7
0
 public static AnimationCurve ToCurve(OscillationSettings settings, int definition)
 {
     return(new AnimationCurve(ToPoints(settings, definition).Convert(v => new Keyframe(v.x, v.y))));
 }
Пример #8
0
 public static float PerlinNoise(OscillationSettings settings, float time)
 {
     return(settings.Amplitude * (Mathf.Clamp01(Mathf.PerlinNoise(time * settings.Frequency, settings.Offset)) * 2f - 1f) + settings.Center);
 }
 public static float PerlinNoise(OscillationSettings settings, float time)
 {
     return settings.Amplitude * (Mathf.Clamp01(Mathf.PerlinNoise(time * settings.Frequency, settings.Offset)) * 2f - 1f) + settings.Center;
 }
Пример #10
0
 public static float WhiteNoise(OscillationSettings settings, float time)
 {
     return settings.Amplitude * PRandom.Range(-1f, 1f) + settings.Center;
 }
Пример #11
0
 public static float Triangle(OscillationSettings settings, float time)
 {
     return settings.Amplitude * PMath.Triangle(settings.Frequency * time + settings.Offset, settings.Ratio) + settings.Center;
 }
Пример #12
0
        public static Vector2[] ToPoints(OscillationSettings settings, int definition)
        {
            var points = new Vector2[definition];

            for (int i = 0; i < definition; i++)
            {
                float ratio = (float)i / definition;
                points[i] = new Vector2(ratio, Oscillate(settings, ratio));
            }

            return points;
        }
Пример #13
0
 public static AnimationCurve ToCurve(OscillationSettings settings, int definition)
 {
     return new AnimationCurve(ToPoints(settings, definition).Convert(v => new Keyframe(v.x, v.y)));
 }
Пример #14
0
 public static float Sine(OscillationSettings settings, float time)
 {
     return settings.Amplitude * Mathf.Sin(settings.Frequency * 2f * Mathf.PI * time + settings.Offset) + settings.Center;
 }
Пример #15
0
 public static float Square(OscillationSettings settings, float time)
 {
     return(settings.Amplitude * PMath.Square(settings.Frequency * time + settings.Offset, settings.Ratio) + settings.Center);
 }
Пример #16
0
 public static float WhiteNoise(OscillationSettings settings, float time)
 {
     return(settings.Amplitude * PRandom.Range(-1f, 1f) + settings.Center);
 }
Пример #17
0
 public static float Oscillate(OscillationSettings settings, float time)
 {
     return GetWaveFunction(settings.WaveShape)(settings, time);
 }