Curve

Curve in Math

In One Line

Tweening? LUT? Native? All in the Curve.

Package Info

display name

AceLand Curve

package name

latest version

1.0.0

namespace

dependencies


Overview

Easing curves map a normalized time parameter t ∈ [0,1] to a smoothed progression y ∈ [0,1]. They are commonly used for animations, UI transitions, and value interpolation where non-linear motion feels more natural.

This package provides:

  • A comprehensive EasingCurve enum of classic easing functions (Sine, Quad, Cubic, Quart, Quint, Expo, Circ, Back, Elastic, Bounce) with In/Out/InOut variants and Linear.

  • A loop/wrap system via LoopMode (Once, Clamp, Loop, PingPong) to control how t is mapped before easing.

  • Extension methods to evaluate curves efficiently in Unity.

  • Optional conversion to DOTween’s Ease enum (if DOTWEEN scripting define is present).


Usage

Basic interpolation

Looping and ping-pong

Manual time control


Loop Mode

Enum CurveLoopMode contains 4 states.

State
Description

Once

no wrapping; intended for manual control. For numerical safety, values are clamped internally around the easing functions.

Clamp

clamps t into [0,1]. This matches the default behavior of Evaluate(t).

Loop

wraps t to [0,1) repeating.

PingPong

bounces t between 0 and 1.


Bake LUT

For high-throughput systems (Burst jobs, particle systems, GPU shaders), it’s often faster to precompute a lookup table (LUT) of an easing curve and then sample it at runtime. Below are reference implementations for:

  • CPU-side LUT generation (Burst-friendly)

  • Passing LUT to a shader as a 1D texture

  • Sampling LUT in C# Jobs

Work with AnimationCurve


With DOTween

If you use DOTween and define DOTWEEN in Scripting Define Symbols:


Last updated