오늘은 DoTween에 대해 알아볼까 합니다.
이전부터 DoTween의 존재를 알고는 있었는데,
이제서야 처음 Pro버전을 구매해 사용해 봤습니다.
Tweening이란?
두 키 프레임 사이의 중간 상태를 자동으로 생성하여
부드러운 애니메이션 효과를 만드는 기법을 말합니다.
DoTween을 활용하면 게임오브젝트들을 손쉽게 제어할 수 있습니다.
사용방법
DoTween을 유니티에 추가하는 방법은
공식 사이트에서 다운 받아 추가하는 방법과 에셋스토어를 이용하는 방법이 있습니다.
추가하는 방법은 생략하도록 하겠습니다.
만약 모르시겠다면 아래 참고한 자료들에서 자세히 다루고 있으니 읽어보시길 권합니다.
먼저 코드를 통해 제어하는 방법입니다.
간단하게 UI와 큐브를 제어하는 코드를 작성했습니다.

스크립트를 통해 DoTween을 사용하기 위해서는
먼저 Using DG.Tweening을 선언해 주어야 합니다.
코드 실행 결과 :
뭔가 복잡해 보이지만
DO, Set, On 이 3가지 접두사만 기억하신다면 쉽게 기능을 찾고, 다룰 수 있습니다.
(Pro버전 한정)
인스펙터 창을 통해서 간단하게 움직임을 제어할 수도 있습니다.
인스팩터 창에서 Add Component를 통해 DOTween Animation을 추가하면
코드를 사용하지 않고도 제어가 가능합니다.


결과는 코드로 진행했을 때와 같습니다.
Play버튼을 누르면 개별 과정을 빠르게 볼 수 있고,
Play All in Scene을 누르면 추가한 모든 DoTween Animation들의 동작을 볼 수 있습니다.
+
무료버전에서는 원래 TextMeshPro를 사용할 수 없고, Text만 사용가능하지만
약간의 코드 응용을 통해 무료버전에서도 TextMeshPro를 사용할 수 있는 방법들이 있습니다.
그 중 가장 간단하게 사용할 수 있는 방법을 찾았습니다.
바로 DoTween 기능 중 DoTween.To()를 사용하는 방법입니다.
코드는 아래 블로그에서 보실 수 있습니다.
https://mentum.tistory.com/325
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public static class TMProUGUIDoText
{
// 확장 메서드 사용 버전 필요없으면 this만 빼고 사용
public static void DoText(this TextMeshProUGUI a_text, float a_duration)
{
a_text.maxVisibleCharacters = 0;
DOTween.To(x => a_text.maxVisibleCharacters = (int)x, 0f, a_text.text.Length, 2f);
}
}
유료버전에서 TextMeshPro를 사용하기 위해선 다음과 같은 과정을 해야 합니다.
먼저 DoTween 유니티 패널을 열어줍니다.
여는 방법은 Tools에 들어가면 바로 패널을 열 수 있습니다.

초록색 Setup DoTween을 누르면

이렇게 TextMeshPro를 체크 해야 사용할 수 있습니다.
(저는 이걸 못 보고 넘어가서 한참을 해맸네요 ㅠ)
참고한 내용입니다.
https://dotween.demigiant.com/
DOTween (HOTween v2)
DOTween is a fast, efficient, fully type-safe object-oriented animation engine for Unity, optimized for C# users, free and open-source, with tons of advanced features It is also the evolution of HOTween, my previous Unity tween engine. Compared to it, DOTw
dotween.demigiant.com
https://youtu.be/SZF1oZ-tqMs?si=U7K_bGf-ubh525U9
https://m.blog.naver.com/i_am_gamer/223284183141
유니티 기초 DOTween
이전 시간에 Time.deltaTime 과 Lerp 를 이용해서 게임 오브젝트 컨트롤을 배웠습니다. 이번 시간에는 ...
blog.naver.com
https://blog.naver.com/chvj7567/223099087794
유니티(Unity) - 두트윈(Dotween)
두트윈이란 유니티 에셋 중에 하나이며, Tweening 애니메이션을 생성하고 관리하는 데 필요한 모든 기능을...
blog.naver.com
오늘은 DoTween에 대해 알아보았습니다.
다음엔 DoTween을 UI와 함께 응용하여 효과적으로 다루는 방법에 대해 다뤄보겠습니다.