유니티 프로젝트에서 많이 사용하는 트윈 엔진(유틸리티 에셋) DoTween을 소개할려고 합니다.
회사 게임개발 프로젝트 최근 5년 3개의 프로젝트에서 모두 사용할정도로 회사 및 인디게임개발에 많이 사용하는 에니메이션 에셋입니다. 일반적으로 유니티에서 제공하고 있는 백터함수중에 이동 및 움직임을 쉽게 해주는 함수가 있습니다.
예를들어 유니티 백터함수 MoveTowards 은 직선으로 지정된 위치에서 타겟 지점으로 이동합니다.
public static Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta);
코드를 보면 시간에따른 스피드만큼 타겟위치로 이동합니다. 시간에 영향을 받아서 Update로 하고 있습니다.
이같은 코드는 많은 단점이 있습니다. 특히 타겟에 도착하였을떄 몇초가 걸리는지, 몇 초에 도착하게 하는 등 직관적인 결과를 내기 힘듭니다.
using UnityEngine;
using System.Collections;
public class TestClass : MonoBehaviour {
public Transform target;
public float speed;
void Update() {
float step = speed * Time.deltaTime;
transform.position = Vector3.MoveTowards(transform.position, target.position, step);
}
}
그래서 트윈이라는 움직임을 도와준는 에셋을 많이 사용합니다. 그중에 가장 위명한 에셋이 DoTween 입니다.
DoTween 기능
무료 DOTween과 유료 DOTween Pro가 있습니다. DOTween Pro는 DoTween의 확장하여 스크립팅 및 시각적 스크립팅을 위한 새로운 기능이 추가 되었습니다. 또한 외부 에셋이 있을 경우, 추가 기능이 포함되어 있습니다. 매우 빠를 뿐만 아니라 매우 효율적이고 캐시에 저장되어 쓸모없는 GC 할당을 피하기 위해 재사용된다고 합니다.
2D Toolkit 지원합니다.
TextMesh Pro 지원합니다.
유료인 DOTween Pro를 사용하길 권장합니다. 추가적인 기능 뿐만 아니라 업데이트를 통하여 버그를 수정하기에 추천드립니다.
DOTween Pro에서는 비주얼적으로 코드를 사용하지 않고 에니메이션을 가능합니다.
오브젝트에 DOTween Animation을 붙이면 이동, 회전, 색상변경(이미지나, 텍스트 등), 스케일 변경, 카메라 쉐이크 등 기본적으로 많이 사용하는 에니메이션을 시간 및 반복, 딜레이, 에니메이션 커브를 사용하여 다양하게 작동시킬수 있습니다.
2D Toolkit 및 TextMesh Pro 오브젝트와도 작동합니다.
Unity UI 클릭 이벤트를 통해 애니메이션과 쉽게 상호작용할 수 있도록 이벤트를 지원하고 있고 애니메이션을 미리 볼 수도 있습니다. 그리고 경로에 따른 이동이 가능합니다.
DoTween은 호환이 좋습니다.
Win, Mac, Linux, Unity WebPlayer, WebGL, iOS, Android 등 다양한 플롬을 지원합니다.WindowsPhone, UWP(v1.2.055부터 IL2CPP를 통해서만), PSVita(PSM), 플레이 스테이션, Xbox, 닌텐도 스위치+기타(추가 플랫폼을 테스트하지 않았지만 플래시 내보내기를 제외한 모든 곳에서 작동한다고 합니다.)
직관적으로 코드를 사용하여 움직임을 구현할수 있습니다.
// 좌표 1,2,3 으로 1초동안 도착합니다
transform.DOMove(new Vector3(1,2,3), 1);
// Y 스케일을 3으로 1초동안 키웁니다.
transform.DOScaleY(3, 1);
다른 트윈에 비해 빠릅니다.
4000개의 이동을 반복하여 테스트 결과
DOTween HOTween LeanTween GoKit iTween
Average FPS | 68 FPS | 63 FPS | 68 FPS | 65 FPS | 38 FPS |
Startup time | 5 MS | 30 MS | 3 MS | 130 MS | 229 MS |
'Unity 유니티 기초강의' 카테고리의 다른 글
유니티 Unity 코드 없는 비주얼 스크립팅 종류 (0) | 2022.06.04 |
---|---|
유니티 비주얼 스크립팅 볼트 Bolt 1 - 설치 (0) | 2022.06.04 |
Unity c# UniRx (0) | 2022.06.04 |
Unity UGUI Text 일부 칼라 크기 변경 (0) | 2022.06.04 |
유니티 unity 무한스크롤 스크롤 풀링 에셋추천 (0) | 2022.06.04 |
댓글