본문 바로가기
개발/Unity

Unity)Animation Curve(애니메이션 커브)

by 테샤르 2023. 5. 22.

Animation Curve(애니메이션 커브)

 

Unity에서 제공하는 Animation Curve로

float 형태의 곡선 값을 Time에 따라 값을 받을수있다.

 

 수치값을 조금더 다양하게 주고 싶을때 주로 사용한다. 시각적으로 표현이 되다 보니 꽤나 유용한 기능이다.

 

 

사용방법에 대한 예시 코드는 다음과 같다.

<사용방법 예시>

 [SerializeField]
        private AnimationCurve scrollTimeCurve = default;
        

private void Update()
        {
            if (State != UIState.MoveScrolling)
                return;

            scrollTime += Time.deltaTime;
            if (scrollTime >= scrollTimeCurve.keys[scrollTimeCurve.length - 1].time)
            {
                State = UIState.MoveScrollEnd;
                scrollTime = 1f;
            }

            var scrollCurveValue = scrollTimeCurve.Evaluate(scrollTime);
            float currentScroll = targetScrollValue * scrollCurveValue;
            scrollRectCenter.SetNormalizePosition(currentScroll);
            //Debug.Log($"{TAG} scrollCurveValue  : {scrollCurveValue}");
        }

 

반응형

 

해당 코드는 AnimationCurve의 시간을 가져오는 코드이다.

scrollTimeCurve.keys[scrollTimeCurve.length - 1].time

 

해당 코드는 AnimationCurve의 시간(scrollTime)에 해당되는 Curve float 값이다.

var scrollCurveValue = scrollTimeCurve.Evaluate(scrollTime);

 

< Key 추가 방법 >

 

중간의 Key를 추가하려면 마우스 오른쪽을 클릭하면 [Add Key] 메뉴가 나오고 추가가 가능하다.

하단에는 기본적인 Presets이 존재한다.  자주사용하는 곡선 형태는 지정해두고 사용하면 편리하다.

 

Unity AnimationCurve : [링크]

 

Unity - Scripting API: AnimationCurve

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

 

Unity AnimationCurve.Evaluate : [링크]

 

Unity - Scripting API: AnimationCurve.Evaluate

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

 

★☆☆☆☆

 

반응형

댓글