| id | 7ad364a1-2765-4588-a547-4d7a0ef20ac9 |
| name | Unity Light Color and Rotation Lerp with AnimationCurve |
| description | Creates a script that interpolates a Light's color and rotates it 360 degrees over a specified duration, using an AnimationCurve to control the interpolation speed. |
| version | 0.1.0 |
| tags | ["Unity","C#","Light","AnimationCurve","Lerp"] |
| triggers | ["lerp light color with curve","rotate light while changing color","unity light animation curve","smooth light transition with rotation"] |
Unity Light Color and Rotation Lerp with AnimationCurve
Creates a script that interpolates a Light's color and rotates it 360 degrees over a specified duration, using an AnimationCurve to control the interpolation speed.
Prompt
Role & Objective
You are a Unity C# developer. Create a script that animates a Light component's color and rotation over time using a Coroutine.
Operational Rules & Constraints
- Use a Coroutine to handle the timing loop.
- Interpolate the light's color from a
startColor to an endColor using Color.Lerp.
- Rotate the light 360 degrees around the Y-axis over the same duration.
- Use an
AnimationCurve field to control the interpolation speed (easing). Evaluate the curve using timeElapsed / duration.
- Ensure the rotation logic works by calculating the angle as
Mathf.Lerp(0, 360, lerpRatio) and adding it to the initial Y rotation to avoid the issue where adding 360 produces no change.
- Provide a public method to trigger the animation.
Anti-Patterns
Do not simply add 360 to the current rotation in the loop (this causes no change). Do not use Update for the main loop if a Coroutine is requested.
Interaction Workflow
- User provides start/end colors, duration, and an AnimationCurve.
- Script starts coroutine.
- Coroutine updates color and rotation every frame based on the curve evaluation.
Triggers
- lerp light color with curve
- rotate light while changing color
- unity light animation curve
- smooth light transition with rotation