
DOTween은 Tween기반으로 애니메이션을 관리할 수 있는 도구이며, 유니티 애셋 스토어에서 찾을 수 있다.
https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676
DOTween (HOTween v2) | 애니메이션 도구 | Unity Asset Store
Use the DOTween (HOTween v2) tool from Demigiant on your next project. Find this & more animation tools on the Unity Asset Store.
assetstore.unity.com
자세한 내용은 DOTween 문서에서 확인할 수 있다.
https://dotween.demigiant.com/documentation.php
DOTween - Documentation
Nomenclature Tweener A tween that takes control of a value and animates it. Sequence A special tween that, instead of taking control of a value, takes control of other tweens and animates them as a group. Tween A generic word that indicates both a Tweener
dotween.demigiant.com

다른 애샛들처럼 Pachage Manager에서 다운로드 후 임포트하여 적용할 수 있다.
DOTween을 이용하면, Transform에서 DOTween의 메서드들을 이용하여 애니메이션을 적용할 수 있게 된다.
그 중 대표적인 것은 다음과 같다.
1. DOMove
transform.DOMove(_goalPoint.position, 5f);
Vector3를 향해 5f의 시간 동안 가는 메서드이다.
즉 Duration 값이 작아질수록 빠르게 이동하고, 높아질수록 느리게 이동한다.
같은 류의 메서드로 DOMoveX, DOMoveY, DOMoveZ와 같은 메서드가 있다.
해당 메서드들은 오브젝트의 Position의 해당 값이 되도록 이동한다.
예를들어 다음과 같이 작성할 수 있다.
transform.DOMoveX(0f, 5f);
만약 해당 오브젝트의 시작시 Position이 Vector(-3f, 15f, 2f)일 경우, 위 코드가 실행되면 Vector(0f, 15f, 2f)의 좌표로 5초동안 이동한다.
2. DOJump
transform.DOJump(_goalPoint.position, 5f, 1, 3f);
위 코드는 Vector3를 향해 5f만큼의 힘으로 3초동안 1번 점프하는 메서드이다.
위 코드의 경우 3초동안 한번에 _goalPoint.position까지 점프할 수 있다.
만약 위 코드를 아래와 같이 바꿀 경우,
transform.DOJump(_goalPoint.position, 5f, 3, 3f);
오브젝트는 _goalPoint.position까지 3번 콩 콩 콩 뛰는 느낌으로 점프한다.
3. DORotate, DORotateQuaternion
transform.DORotate(new Vector3(0f,0f,45f), 1f);
transform.DORotateQuaternion(Quaternion.Euler(0f, 0f, 45f), 1f);
1초 동안 transform.rotation이 (0f, 0f, 45f)이 되도록 회전한다.
DORotate은 Vector3값을 인수로 받으며, DORotateQuaternion은 쿼터니언 값을 인수로 받는다.
일단 위 두 코드는 같은 애니메이션을 출력한다.
근대 '나는 어떤 오브젝트를 제자리에서 회전하고 싶어'라고 생각하는 사람이 다음과 같은 코드를 실행하면 회전하지 않는다.
transform.DORotate(new Vector3(0f,0f,360f), 1f);
이는 기본적으로 위 코드는 다음 코드와 같기 때문이다.
transform.DORotate(new Vector3(0f,0f,360f), 1f, RotateMode.Fast);
따로 RotateMode라는 열거형을 지정하지 않으면, 해당 Vector3값이 되는 가장 빠른 방향으로 회전한다. 이를 다음과 같이 수정하면 한바퀴를 돌게 된다.
transform.DORotate(new Vector3(0f,0f,360f), _rotateDuration, RotateMode.FastBeyond360);
// 만약 다섯바퀴 돌리고 싶다면
transform.DORotate(new Vector3(0f,0f,360f * 5), _rotateDuration, RotateMode.FastBeyond360);
4. DOScale
transform.DOScale(new Vector3(2f,2f,2f), 3f);
3초동안 Scale이 2만큼 커지는 애니메이션이다.
5. DOPath
private Vector3[] _wayPointsPositions;
transform.DOPath(_wayPointsPositions, 5f);
DOMove가 한 지점을 향해 움직이는 메서드라면, DOPath는 여러 좌표를 순서대로 이동하는 메서드이다.

Scene 창에서 이처럼 경로를 표시해준다.
DORotate 메서드처럼 DOPath도 PathType 열거형을 통해 움직임을 바꿀 수 있다.
transform.DOPath(_wayPointsPositions, 5f, PathType.Linear);
transform.DOPath(_wayPointsPositions, 5f, PathType.CatmullRom);
PathType.Linear는 좌표간을 직선으로 움직이게 하며, 위와 같은 이미지의 괘도로 움직인다.
CatmullRom은 각 좌표를 부드러운 직선을 그리며 이동한다. Scene 창에는 다음과 같이 표시된다.

이처럼 DOTween을 이용하면 직관적인 코드로 다양한 움직임을 손쉽게 구현할 수 있다.
또한 단순한 연출이라면 따로 Animator를 사용하지 않고 DOTween을 이용해 구현할 수 있다.
'TIL' 카테고리의 다른 글
| 몬스터 체력 감지 리팩토링 및 프로파일러를 통한 성능개선 체크 (0) | 2025.04.23 |
|---|---|
| DOTween 트윈 이벤트 메서드와 활용 (0) | 2025.04.21 |
| DOTween의 Sequence (0) | 2025.04.03 |
| Git 클라이언트 'Fork' (0) | 2025.04.01 |
| Aseprite 파일에 대해 (0) | 2025.02.15 |