[TIL] 22일 차 - DOTween에 대해 알아보자

ChangBeom·2025년 2월 25일

TIL

목록 보기
23/53
post-thumbnail

[DOTween]

<DOTween이란?>

Unity에서 자주 사용하는 트윈(tween) 라이브러리이다. 트윈이란 오브젝트의 시간당 변화를 부드럽게 하는 애니메이션 기법이다. 이를 활용하여 오브젝트의 위치, 회전, 크기, 색상 등을 자연스럽게 변화시킬 수 있다.

DOTween은 기본적으로 무료로 사용 가능하지만 pro 버전이 존재하고 pro버전은 유로이다. (코드로 DOTween을 활용할 수 있으면 무료버전으로 충분하다)

다운로드 : https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676

나는 DOTween을 활용해서 UI에 애니메이션을 넣어 게임의 디테일을 살려볼 예정이다.

<사용법>

간단하게 스크립트에서 namespace를 추가해주면 사용 가능하다.

using DG.Tweening;

이제 DOTween을 활용해서 UI를 만들어보자.

[예시] : DOTween을 활용한 메뉴창 구현

using DG.Tweening;
using UnityEngine;

public class UIHUD : MonoBehaviour
{
		[SerializeField] private GameObject objMenu;
		private bool isMove = false;
		public void OnMenu()
		{
		    if (!isMove)
		    {
		        isMove = true;
		        if (!objMenu.activeSelf)
		        {
		            objMenu.SetActive(true);
		            objMenu.transform.DOLocalMoveY(objMenu.transform.localPosition.y - 500f, 0.5f).SetEase(Ease.OutCubic).OnComplete(() =>
		            {
		                isMove = false;
		            });
		        }
		        else
		        {
		            objMenu.transform.DOLocalMoveY(objMenu.transform.localPosition.y + 500f, 0.5f).SetEase(Ease.OutCubic).OnComplete(() =>
		            {
		                objMenu.SetActive(false);
		                isMove = false;
		            });
		        }
		    }
		}
}

위 코드를 간단하게 설명하면 objMenu를 DoLocalMoveY() 함수를 활용하여 현재 위치에서 0.5초 동안 500만큼 내리는데, SetEase() 함수에 매개변수로 enum 타입의 Ease.OutCubic을 넣어 빠르게 시작해서 점차 느려지면서 끝나는 형태의 애니메이션을 만든다.

이 뿐만이 아니라 DOTween은 활용도가 엄청 높으므로 사용할 일이 있으면 공식 문서에 들어가서 공부해보자!

공식 문서 : https://dotween.demigiant.com/documentation.php

0개의 댓글