[Unity] DOTween
![[Unity] DOTween](/_next/image?url=https%3A%2F%2Fdata.develog.develrocket.com%2Fupload%2Fdevelog%2Fuser_1777093328305%2F1780401254046-x5y1k6%2F_____2026-06-02_205320.png&w=3840&q=75)
Unity DOTween이란?
DOTween은 Unity에서 애니메이션(Tween)을 쉽고 빠르게 구현할 수 있도록 도와주는 라이브러리이다. 복잡한 코루틴이나 Update문 없이도 오브젝트의 이동, 회전, 크기 변경, UI 애니메이션 등을 간단한 코드로 만들 수 있다.
DOTween의 장점
- 간단한 코드로 애니메이션 구현 가능
- 성능이 우수하고 사용이 편리함
- 이동, 회전, 크기 변경, 색상 변경 등 다양한 기능 제공
- 여러 애니메이션을 순차 또는 동시에 실행 가능
연습해보기
이번 프로젝트에서 DOTween 을 이용해 화면이 닫혔다가 다시 열리는 Iris Transition 효과를 구현했다.
코드
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
public class DayTransitionUI : MonoBehaviour
{
[SerializeField]
private Image irisImage;
[SerializeField]
private float closeDuration = 0.8f;
[SerializeField]
private float openDuration = 0.8f;
[SerializeField]
private PlayerMovement playerMovement;
private Material irisMaterial;
private void Awake()
{
irisMaterial = Instantiate(irisImage.material);
irisImage.material = irisMaterial;
irisMaterial.SetFloat("_Radius", 1f);
irisImage.gameObject.SetActive(false);
}
public void PlayTransition(System.Action onMidpoint)
{
irisImage.gameObject.SetActive(true);
playerMovement.SetDead(true);
Sequence seq = DOTween.Sequence();
seq.Append(
DOTween
.To(
() => irisMaterial.GetFloat("_Radius"),
v => irisMaterial.SetFloat("_Radius", v),
0f,
closeDuration
)
.SetEase(Ease.InQuart)
);
seq.AppendCallback(() => onMidpoint?.Invoke());
seq.AppendInterval(1f);
seq.AppendCallback(() => playerMovement.SetDead(false));
seq.Append(
DOTween
.To(
() => irisMaterial.GetFloat("_Radius"),
v => irisMaterial.SetFloat("_Radius", v),
1f,
openDuration
)
.SetEase(Ease.OutQuart)
);
seq.OnComplete(() => irisImage.gameObject.SetActive(false));
}
}
값 Tweening
seq.Append(
DOTween
.To(
() => irisMaterial.GetFloat("_Radius"),
v => irisMaterial.SetFloat("_Radius", v),
0f,
closeDuration
)
.SetEase(Ease.InQuart)
);
DOTween.To()는 특정 값을 일정 시간 동안 부드럽게 변경한다
이 코드에서는 쉐이더의 _Radius값을 1->0 으로 변경하여 화면이 점점 닫히는 효과를 만든다.

이런식으로 검은색 화면이 원으로 줄어드는 연출을 할 수 있다.


![[Unity] PC 세이브 데이터 Android로 옮기기](https://data.develog.develrocket.com/upload/develog/muchan/1792206352286-hd4xz4/_____2026-10-17_114953.png)
![[Unity] 제네릭 박싱 예방](https://data.develog.develrocket.com/upload/develog/gmumdev/1792123312021-bhxx2i/_____.png)