게임개발 캠프 36일차

IIRU·2026년 7월 6일

Tweening

DoTween 에셋 Import

update나 코루틴으로 진행하던 애니메이션 이동 처리나 시간에 따른 변화를 관리할 때 편하게 쓸 수 있음.

현재 unity에서 가장 많이 사용하는 트위닝 라이브러리이다.

장점

  1. 가독성이 높아지고, 생산성이 올라간다.
  2. 성능이 Update보다 뛰어나다.
  3. Sequence로 복잡한 연출까지 쉽게 구성할 수 있다.
  4. GC할당을 최소화한다.

DoTween

DoMove

DOMove(Vector3 targetPos, float duration)

transform.DOMoveX(0.1f, 0.1f);

DoRatate

DORotate(Vector3 targetRot, float duration, RotateMode mode)

transform.DORotate(new Vector3(0, 180, 0), 1f));

DoScale

DOScale(Vector3 targetScale, float duration)

transform.DOScale(Vector3.one * 2f, 0.5f);

DoColor

DoColor(Color.endValue, float duration)

SpriteRenderer sprite;
sprite = GetComponent<SpriteRender>();
sprite.DOColor(Color.red, 1f);

DoFade

DoFade(float endValue, float duration)

canvasGroup.DOFade(0f, 1f);

그 외

DoShakePosition

 transform.DOShakePosition(0.2f, 0.5f).SetLoops(-1, LoopType.Restart);

Easing

부드러운 변환을 위한 시간당 변화량 설정

도착지점은 같으나 처음에 빠르거나 중간에 빠르거나 마지막에 빠르게 할 수 있음.

Loop

SetLoop(int loop, LoopType type)

loop에는 반복 수 / -1이면 무한 반복
LoopType
1. Yoyo : 왕복
2. Restart : 처음부터 다시
3. Incremental : 계속 누적시키며 증가하도록

transform.DOMoveX(2, 3f).SetLoops(-1, LoopType.Restart);

Sequence

여러 DoTween을 연속적으로 실행하거나 동시에 실행할 수 있도록 해주는 기능

 text = GetComponent<TextMeshProUGUI>();
 Sequence sequence = DOTween.Sequence();
 sequence.Append(text.transform.DOMoveY(text.transform.position.y+1f, 1.5f))
     .Join(text.DOFade(0f, 1.5f))
     .OnComplete(()=>text.gameObject.SetActive(false))
     .SetLink(text.gameObject, LinkBehaviour.KillOnDisable);

( 메이플 대미지 표시 느낌의 시퀸스 )

SetRelative

transform.DOMoveX(3, 1f);                 // 3 좌표로 이동
transform.DOMoveX(3, 1f).SetRelative();   // 내 위치에서 3만큼 이동

SetDelay

transform.DOMoveX(3, 1f).SetDelay(1);      // 1초 후 3 좌표로 이동
profile
초보 개발자 블로그입니다!

0개의 댓글