[Unity] DoTween의 사용법에 관하여
개요
DOTween은 유니티에서 트위닝(Tweening)을 쉽게 구현할 수 있도록 도와주는 강력한 에셋입니다.
트위닝이란, 시작 값과 종료 값을 지정해주면 그 사이의 값을 부드럽게 변화시켜 애니메이션 효과를 만드는 기법입니다. 예를 들어 오브젝트를 부드럽게 이동시키거나, 색상을 서서히 바꾸거나, 크기를 자연스럽게 조절하는 등의 효과를 간단하게 구현할 수 있습니다.
즉, 코드베이스로 Animation을 구현할 때 사용하면 매우 좋습니다. 현직에서도 많이 사용하니 반드시 익혀두시는것을 강력히 추천합니다.
특징
- 간단한 사용법: 직관적인 API를 제공하여 코드를 몇 줄만 작성해도 원하는 애니메이션 효과를 만들 수 있습니다.
- 다양한 트위닝 기능: 이동, 회전, 크기 조절뿐만 아니라 색상, 알파값, 텍스트 등 다양한 속성을 트위닝할 수 있습니다.
- 높은 성능: 최적화된 코드로 제작되어 게임의 성능에 미치는 영향이 적습니다.
- 유연한 제어: 트위닝의 시작, 종료, 지연, 반복 등을 세밀하게 제어할 수 있습니다.
- 시퀀스 기능: 여러 개의 트위닝을 순차적 또는 동시에 실행할 수 있는 시퀀스 기능을 제공합니다.
- 다양한 이징(Easing) 함수 제공: 트위닝의 속도 변화를 조절할 수 있는 다양한 이징 함수를 제공하여 더욱 자연스러운 애니메이션을 만들 수 있습니다. (선형, 가속, 감속, 탄성 등)
- Time.timeScale 지원: 게임 일시정지(Time.timeScale = 0) 상태에서도 DOTween을 작동시킬 수 있습니다. (.SetUpdate(true) 추가)
장점
- 애니메이션 구현의 생산성을 크게 향상시킵니다.
- 복잡한 애니메이션도 쉽게 구현할 수 있습니다.
- 성능이 뛰어나고 다양한 기능을 제공합니다.
- 활발한 커뮤니티와 풍부한 자료를 가지고 있습니다.
주의점
- DOTween 초기화: 일반적으로 DOTween.Init(); 함수를 사용하여 DOTween을 초기화합니다. (필수는 아니며, 기본값으로 자동 초기화됨)
- 메모리 관리: 더 이상 필요하지 않은 트위닝은 명시적으로 종료하여 메모리 누수를 방지해야 합니다. (Kill() 함수 사용)
- SetUpdate(true) 사용 시 주의: Time.timeScale이 0일 때 DOTween을 작동시키기 위해 .SetUpdate(true)를 사용하는데, 이 경우 Time.unscaledDeltaTime을 사용하여 시간 계산을 하므로, 다른 시간 기반 로직과 충돌이 발생하지 않도록 주의해야 합니다.
사용법
- DOTween 설치: 유니티 에셋 스토어에서 DOTween을 검색하여 프로젝트에 추가합니다.
- 네임스페이스 추가: 스크립트 상단에 using DG.Tweening;을 추가합니다.
- 트위닝 함수 사용: 다양한 트위닝 함수를 사용하여 원하는 애니메이션 효과를 구현합니다.
[DOMove] : 오브젝트를 지정된 위치로 이동시킵니다.
transform.DOMove(new Vector3(10, 0, 0), 1f); // 1초 동안 x축으로 10만큼 이동
[DORotate] : 오브젝트를 지정된 각도로 회전시킵니다.
transform.DORotate(new Vector3(0, 180, 0), 1f); // 1초 동안 y축으로 180도 회전
[DOScale] : 오브젝트의 크기를 조절합니다.
transform.DOScale(new Vector3(2, 2, 2), 1f); // 1초 동안 2배 크기로 확대
[DOColor] : 머티리얼의 색상을 변경합니다.
GetComponent<Renderer>().material.DOColor(Color.red, 1f); // 1초 동안 빨간색으로 변경
[DOFade] : 캔버스 그룹의 알파값을 조절합니다.
canvasGroup.DOFade(0f, 1f); // 1초 동안 투명하게 변경