
AnimationCurve는 기본적으로 애니메이션을 제어하기 위해 사용되는 클래스이다.
다음과 같이 생겼다.


위와 같은 그래프의 형태로 되어있으며, 중간중간에 보이는 점들을 키프레임 이라고 한다.
키 프레임은 'Time'과 'Value'로 이루어져 있는데, 두번째 이미지에서, 12.00가 Time이고, 1.000이 Value에 해당된다.
AnimationCurve 클래스에는 Evaluate(float)이라는 메서드가 있는데, Time 값을 넣으면 Value값을 도출해 낼 수 있게 된다.
예를 들어, 위 AnimationCurve에서 다음과 같이 Evaluate을 사용한다면 1f을 반환하게 된다.
_animationCurve.Evaluate(12f)
이러한 AnimationCurve의 특징을 보간작업에도 이용할 수 있다.
예를들어 다음과 같은 식이다.
float _lerpTime;
float _lerpCycle = 10f;
void Update()
{
_lerpTime += Time.deltaTime;
if(_lerpTime <= _lerpCycle)
{
_light.color = Color.Lerp(_startColor, _targetColor, _animationCurve.Evaluate(_lerpTime/_lerpCycle);
}
}
Color.Lerp메서드는 매개변수를 3개를 받는 메서드이다.
개인적으로는 값A, 값B, 그리고 중간값 이라는 느낌으로 익히고 있다.
'중간값'의 경우 0f일 경우에는 값A이며, 1f일 경우 값B가 된다.
0.2, 0,5 등의 값을 넣게 된다면, A와 B 사이 중간쯤 그 값에 해당되는 부분이 반환되게 된다.
Color.Lerp를 이용하는 위 예시 코드의 경우,
10초동안 _startColor값에서 _targetColor 값으로 서서히 자연스럽게 변화하는 것을 구현할 수 있다.
'내일배움캠프 TIL' 카테고리의 다른 글
| 내일배움캠프 53일차 TIL "Sprite Library와 Sprite Resolver를 이용한 Sprite 처리" (0) | 2024.12.02 |
|---|---|
| 내일배움캠프 52일차 TIL "Happy Harvest 작물 시스템 분석" (0) | 2024.11.29 |
| 내일배움캠프 50일차 TIL "제네릭" (0) | 2024.11.27 |
| 내일배움캠프 49일차 TIL "타일맵 저장의 아이디어" (0) | 2024.11.26 |
| 내일배움캠프 48일차 TIL "Summary 기능" (0) | 2024.11.25 |