나는 주로 유니티에서 간단하게 움직이는  스크립트를 짤 때

Lerp 함수를 자주 이용한다.

 

근데 문제는 이동에 뭔가 색다른 효과를 주고 싶을 때

처음에는 느리다가 점점빨라지거나

갑자기 뒤로갔다가 반동으로 튀어나가거나

 

그런 동작을 추가하려면 뭔가 복잡한 처리를 해야한다는 것 이었다

 

근데 AnimationCurve 클래스를 최근에 알게 되었다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public AnimationCurve curve;//인스펙터에서 조정하면 됨
 
 
IEnumerator Close()
{
    float progress = 0;
    while (true)
    {
        progress += Time.DeltaTime;
          
        cutOff = Mathf.Lerp(01, curve.Evaluate(progress));//여기 가 중요한 부분
        if (progress > 1) yield break;
 
        yield return 0;
    }
}
cs

 

인스펙터에는 이런식으로 뜬다

 

클릭하면 나오는 창에서 잘 조정하면 된다

밑에있는 톱니바퀴를 누르면

지금 편집하고 있던 커브를 프리셋으로 등록할 수도 있다.

블로그 이미지

stuban

ㅇ.ㅇ

,