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
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • 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 (4)
      • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바