프로그래밍/유니티
애니메이션 커브 AnimationCurve
stuban
2019. 1. 18. 21:48
나는 주로 유니티에서 간단하게 움직이는 스크립트를 짤 때
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(0, 1, curve.Evaluate(progress));//여기 가 중요한 부분
if (progress > 1) yield break;
yield return 0;
}
}
|
cs |
인스펙터에는 이런식으로 뜬다
클릭하면 나오는 창에서 잘 조정하면 된다
밑에있는 톱니바퀴를 누르면
지금 편집하고 있던 커브를 프리셋으로 등록할 수도 있다.