목표한 시간에 도달할때까지 값의 변화를 선(곡선)으로 지정하는 방법.
"오브젝트가 10초에 걸쳐서 x축으로 10만큼 자연스럽게 이동하게 만든다."
라고하면 1초에 x축으로 1씩 등속운동을 할수도 있지만, 속력이 서서히 빨라지는 가속도 운동도 있을수 있고, 빠르게 이동후에 서서히 부드럽게 감속할수도 있다.
보통 값의 자연스러운 변화를 만들때 mathf.lerp를 썼었지만
-목표한 값에 완벽히 도달하지 못하고 목표값 근처에서만 머물게됌
-값에 도달하게 되는 시간을 정확히 지정해줄수 없음
이러한 단점들이 있었다.
이러한 점을 AnimationCurve를 사용해서 보완가능.
스크립트를 만들고 public AnimationCurve를 추가하면
Inspector에서 Animation Curve창이 나옴.
처음엔 빈 창이고 만들고자 하는 가장 적합한 선을 밑에서 선택
기본 선이 그려지고 선에 우측 클릭으로 점을 추가해서 선 형태 변경 가능.
점에 우측클릭을 해서 값을 지정하거나 세부적인 설정 가능.
AnimationCurve의 x축은 인풋값(시간)이고 y축은 결과값으로 볼수 있음.
float자료형 i를 AC.Evalute에 넣으면
만든 AnimationCurve에서 i에 해당하는 결과값이 나온다.
-활용하기-
목표한 시간동안 AnimationCurve의 형태대로 x축 이동하기
AnimationCurve의 x축은 최대1인 상태로 원하는 곡선 만들기
AnimationCurve의 목표값에 도달할때까지 걸릴 시간을 지정할 변수(GoalTime)생성
게임내에서 흐르는 시간을 지정할 변수(t)생성
실제 시간을 의미하게 하기 위한 코드 " t = t + Time.deltaTime "
시간에 따른 커브의 결과값 코드 " AC.Evaluate(t/GoalTime) "
10초 동안 AnimationCurve의 형태대로 값이 변화하게 하기위해서
GoalTime에 "10"을 입력
'툴 > 유니티' 카테고리의 다른 글
Unity HDRP VFXgraph Green Tint Issue(HDRP 녹색, 초록색 문제) (0) | 2022.04.25 |
---|---|
HDRP&URP Chromakey shader 크로마키 쉐이더 (2) | 2022.03.15 |
리얼센스 스켈레톤 트랙킹(realsense skeleton tracking) (0) | 2022.02.19 |
유니티 리얼타임 라이트 중첩시 오브젝트별로 라이팅 깨져보이는 현상 (0) | 2022.01.24 |
유니티 게임 일시정지 기능 만들기 (0) | 2022.01.11 |