DoTween의 Tween과 Sequence

2024. 4. 27. 15:51·Unity/Asset
반응형

Tween

Tween은 단일 대상 객체에 대한 애니메이션을 정의하는 데 사용됩니다. 객체의 위치, 회전, 크기, 색상 등 다양한 속성을 원하는 값으로 부드럽게 변환시키는 데 적합합니다.

 

Tween 주요 기능

  • 타겟 지정: 애니메이션을 적용할 대상 객체 지정
  • 속성 변경: 이동, 회전, 크기 조정, 색상 변경 등 다양한 속성 변환
  • Ease 함수: 부드러운 움직임을 위한 Ease 함수 적용
  • 지속 시간: 애니메이션 실행 시간 설정
  • 지연 시간: 애니메이션 시작 지연 시간 설정
  • 루프: 애니메이션 반복 횟수 설정
  • 콜백: 애니메이션 시작, 종료, 진행 상황에 따라 이벤트 발생
using DG.Tweening;

using UnityEngine;

public class MoveObject : MonoBehaviour
{
	void Start()
	{
		// 객체를 (10, 2, 5) 위치로 2초 동안 이동
		transform.DOMove(new Vector3(10, 2, 5), 2f);

		// 객체를 90도 회전
		transform.DORotate(new Vector3(0, 90, 0), 1f);

		// 객체 크기를 2배로 증가
		transform.DOScale(Vector3.one * 2f, 1f);
	}
}

 

Sequence

Sequence는 하나 이상의 Tween을 연결하여 시간과 순서에 맞춰 배열하여 연속된 하나의 장면을 구성하는 기능입니다. 복잡한 애니메이션을 구현하는 데 사용됩니다. 각 Tween은 순차적으로 실행되거나 동시에 실행될 수 있으며, 지연, 루프, 콜백 등을 설정할 수 있습니다.

Sequence 주요 기능

  • Tween 연결: 여러 Tween을 순차적 또는 동시에 연결
  • 지연: Sequence 시작 지연 시간 설정
  • 루프: Sequence 반복 횟수 설정
  • 콜백: Sequence 시작, 종료, 진행 상황에 따라 이벤트 발생
  • 타겟 지정: Sequence 전체에 적용할 대상 객체 지정
using UnityEngine;

using DG.Tweening;

public class SequenceExample : MonoBehaviour
{
	void Start()
	{
		// Sequence 생성
		Sequence sequence = DOTween.Sequence();

		// 객체를 (10, 2, 5) 위치로 2초 동안 이동
		sequence.Append(transform.DOMove(new Vector3(10, 2, 5), 2f));

		// 1초 지연 후 객체를 (5, 3, 4) 위치로 1초 동안 이동
		sequence.AppendInterval(1f);
		sequence.Append(transform.DOMove(new Vector3(5, 3, 4), 1f));

		// 객체를 90도 회전
		sequence.Append(transform.DORotate(new Vector3(0, 90, 0), 1f));

		// Sequence 시작
		sequence.Play();
	}
}

 

Sequence에 Tween 추가 및 콜백 설정

Sequence는 다양한 구성 함수를 제공하여 Tween을 추가하고 순서를 조정할 수 있습니다. 주요 구성 함수는 다음과 같습니다.

  • Append : 마지막에 Tween을 추가합니다. 기본적인 순서대로 실행됩니다.
  • Insert : 특정 시간에 Tween을 삽입합니다. 다른 Tween과 동시에 실행되거나 중간에 시작될 수 있습니다.
  • Join : 앞에 추가된 Tween과 동시에 시작되는 Tween을 추가합니다.
  • Prepend : 맨 처음에 Tween을 추가합니다.

예시

다음은 각 1초의 변환 시간을 가진 Tween A, B, C, D, E로 구성된 Sequence 실행 과정을 보여주는 예시입니다.

Sequence Sequence = DOTween.Sequence();
Sequence.Append(A)
.Join(B)
.Insert(1.5f, C)
.Prepend(D)
.Append(E);

 

시간별 트윈 작업

콜백함수 등록

Sequence는 Tween 형태가 아닌 콜백 함수도 추가할 수 있습니다. 콜백 함수는 특정 시간에 특정 작업을 수행하도록 사용됩니다. 예를 들어, 트윈 중간에 스프라이트 변경, 파티클 발화 등을 구현하는 데 사용할 수 있습니다.

Sequence sequence = DOTween.Sequence();

bool moveIsDone = false;
sequence.Append(transform.DOMove(Vector3.forward, 1))
        .AppendCallback(() => moveIsDone = true);

DOMove 트윈이 종료되면 moveIsDone = true가 됩니다.

 

체인 콜백 (Chained callbacks)

체인 콜백은 특정 트위너/시퀀스가 시작되거나 완료될 때 호출되는 함수입니다. 이 기능을 사용하면 애니메이션 실행 과정에서 특정 작업을 수행하거나 다른 애니메이션을 트리거할 수 있습니다.

 

체인 콜백 유형 (Chained callback types)

  • OnStart: 트위너/시퀀스가 시작될 때 호출됩니다.
  • OnUpdate: 트위너/시퀀스가 진행되는 동안 매 프레임마다 호출됩니다.
  • OnComplete: 트위너/시퀀스가 완료될 때 호출됩니다.
  • OnKill: 트위너/시퀀스가 중단될 때 호출됩니다.
  • OnStart : 트위너/시퀀스가 실행될 때 마다 호출됩니다. 또한 일시 중지 상태에서 재생을 재개할 때에도 호출됩니다.
  • OnPause : 트위너/시퀀스 상태가 일시 중지로 변경될 때 호출됩니다. SetAutoKill을 FALSE로 설정한 경우 완료될 때도 호출됩니다.
저작자표시 비영리 변경금지 (새창열림)

'Unity > Asset' 카테고리의 다른 글

Unity 애니메이션을 간편하게 만들어주는 DoTween  (0) 2024.04.27
'Unity/Asset' 카테고리의 다른 글
  • Unity 애니메이션을 간편하게 만들어주는 DoTween
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19)
      • 일기장 (4)
      • 파이썬 (131)
        • Basic (42)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (5)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    카페24리뷰
    cv2
    리스트
    쇼핑몰리뷰
    unity
    라떼우유
    스크립트 실행
    믈레코비타멸균우유
    유니티
    ipcamera
    rtsp
    Python
    devlife
    스마트스토어리뷰
    카페24리뷰이관
    스크립트 실행 순서
    셀레니움
    appdevelopment
    리뷰이관
    programming101
    codingcommunity
    list
    상품 리뷰 크롤링
    learntocode
    파이썬
    codingtips
    긴유통기한우유
    programmerlife
    리뷰관리
    C#
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
DoTween의 Tween과 Sequence
상단으로

티스토리툴바