3. DOTween 활용하기

네,가능합니다 ㅣ 2024. 11. 18. 10:08

이번엔 DOTween을 이용하는 예제와 이 예제들을 활용하여 어떤것을 구현할 수 있을지도 적어보면서

DOTween을 배우는 시간을 마무리해보도록 하겠다.

 

1. Ease 커스텀 곡선 애니메이션

AnimationCuve를 사용하여 원하는 움직임을 만들어보자.

using DG.Tweening;
using UnityEngine;

public class CustomEaseExample : MonoBehaviour
{
    public Transform target; // 움직일 대상
    public AnimationCurve customCurve; // 곡선 (에디터에서 설정해줄것)

    void Start()
    {
        target.DOMoveY(5f, 2f)
            .SetEase(customCurve) // AnimationCurve를 Ease로 설정
            .OnComplete(() => Debug.Log("애니메이션 완료!"));
    }
}

에디터에서 AnimationCurve를 설정하고, DOTween애니메이션에 적용이 가능하다.

활용 : 점프를 할때 초반엔 빠르게 상승하고 후반엔 천천히 멈추는 자연스러운 동작을 구현할 수 있다.

 

2. DOTween 콜백 활용하기

애니메이션이 끝난 후 이벤트를 실행하거나, 특정 시점에 작업을 추가할 수 있다.

using DG.Tweening;
using UnityEngine;

public class CallbackExample : MonoBehaviour
{
    public Transform target;

    void Start()
    {
        Sequence sequence = DOTween.Sequence();

        sequence.Append(target.DOMoveX(3f, 2f))
                .Join(target.DOScale(Vector3.one * 1.5f, 2f))
                .OnUpdate(() => Debug.Log("진행중")) // 매 프레임 호출
                .OnStepComplete(() => Debug.Log("한단계 끝!")) // 한 단계가 끝날 때 호출
                .OnComplete(() => Debug.Log("전체 완료!"));
    }
}

활용 : 중간중간 이펙트, 사운드, 알림 등 원하는 타이밍에 쉽게 연출을 넣을 수 있다.

 

3. DOTween Path 활용

DOTween Path는 특정 경로를 따라 오브젝트를 이동시킬 수 있는 기능이다.

using DG.Tweening;
using UnityEngine;

public class PathExample : MonoBehaviour
{
    public Transform target;

    void Start()
    {
        Vector3[] path = new Vector3[]
        {
            new Vector3(0, 0, 0),
            new Vector3(3, 2, 0),
            new Vector3(6, 0, 0)
        };

        target.DOPath(path, 3f, PathType.CatmullRom)
              .SetEase(Ease.Linear)
              .SetLookAt(0.01f); // 이동 방향으로 회전
    }
}

활용 : NPC의 원하는 이동 혹은 투사체가 곡선을 그리며 이동

 

이 외에 실제 게임에서 쓰기 좋은것들을 정리해보자.

 

첫번째로는 당연하게도 UI 시스템이다.

 

버튼효과, UI 전환효과(슬라이드 인/아웃, 페이드 인/아웃), 경고(떨림, 깜빡임), HUD(DOTween을 이용하여 부드럽게 업데이트)

 

다음으로는 캐릭터 애니메이션이다.

이동(부드러운 이동, 회전), 특수효과(캐릭터 크기변화, 발광효과), 카메라 추적에도 쓰이는 경우가 있음

또한 위에서 봤듯 점프에도 쓸 수 있다.(카메라는 업데이트된 시네머신을 배우는것을 추천)

 

특수효과

빛을 부드럽게 조정하거나, 오브젝트의 흔들림(피격으로인한 경직 등), 아이템 획득(아이템이 점점 커지며 중앙으로 이동하고 사라짐)

 

환경

플랫폼의 이동 혹은 문의 원하는 연출적 열림/닫힘 이 있다면 활용을 생각해보는것이 좋다.