DoTween 사용하기
이 글은 제 개인적인 공부를 위해 작성한 글입니다.
틀린 내용이 있을 수 있고, 피드백은 환영합니다.
DoTween?
DoTween은 빠르고 효율적이며 완전한 타입 안전성을 갖춘 유니티용 객체 지향 애니메이션 엔진으로, C# 사용자에게 최적화되어 있고 무료 오픈 소스이며 다양한 고급 기능을 제공합니다.
라고 DoTween 공식 홈페이지에 적혀있다.
요 몇 주 동안 DoTween을 사용해 보았는데, 너무 편해서 사용법을 정리할 겸 포스팅을 작성한다.
뭐가 편한지?
사용하면서 느낀 편한 점을 나열해 보면,
- 간단하게 애니메이션 연출 가능 (움직임, Fade 효과, 스케일 변경 등등)
- 코루틴으로 구현하던 연출들을 DoTween으로 대체 가능 (코루틴 제어를 위한 변수가 필요 없어진다!)
- Invoke 대체 가능 등등 이 있었던 거 같다
Prefixes
DoTween엔 특수한 접두사들이 몇 개 있다.
DO
: 모든 트윈 단축키(transform이나 material과 같은 컴포넌트에서 시작할 수 있는 작업)의 접두사이다. 메인 DOTween 클래스의 접두사이기도 하다.
transform.DOMoveX(5, 1);
Set
: 트윈에 연결할 수 있는 모든 설정의 접두사이다.
transform.DOMoveX(5, 1).SetEase(Ease.OutBounce);
On
: 트윈에 연결할 수 있는 모든 콜백의 접두사이다.
transform.DOMoveX(5, 1).OnComplete(MyCallback);
Creating a Tweener
트위너는 DoTween의 일하는 개미라고 생각하면 된다.
트위너를 만드는 방법은 아래 3가지가 있는데, 이 포스트에선 Shortcut way만 다루겠다.
- The Generic way
- The Shortcut way
- The Additional Generic ways.
Shortcut way를 사용하면 transform이나 rigidbody와 같은 유니티 컴포넌트에서 아래와 같이 바로 DoTween을 호출할 수 있다.
transform.DOMoveX(5, 1);
rigidbody.DOMoveX(5, 1);
spriteRenderer.DOFade(0, 1);
Basic elements shortcuts
DoTween은 다양한 기본 요소들을 제공한다.
- Move :
transform.DOMoveX(5, 1);
(Param :float to, float duration
) - Rotate :
transform.DORotate(new Vector3(0, 180, 0), 1);
(Param :Vector3 to, float duration
) - Scale :
transform.DOScale(new Vector3(2, 2, 2), 1);
(Param :Vector3 to, float duration
) - Fade :
spriteRenderer.DOFade(0, 1);
(Param :float to, float duration
) - Color :
spriteRenderer.DOColor(Color.red, 1);
(Param :Color to, float duration
) - Text :
text.DOText("Hello World", 1);
(Param :string to, float duration
, 텍스트 타이핑 효과)
이외에도 정말 많으니까 공식 도큐먼트를 보고 사용하면 된다.
움직이거나 회전, 스케일 변화 등을 간단하게 연출할 수 있어 잘 사용하면 정말 편리한 것 같다.
그리고 Invoke를 대체할 수 있는 DOVirtual.DelayedCall
도 있다.
DOVirtual.DelayedCall(1, MyCallback);
(Param : float delay, TweenCallback callback
)
기존 Invoke는 함수를 string으로 넘겨주어야 했는데, DoTween은 함수를 직접 넘겨줄 수 있다.