All Development

Unity) Dotween (닷트윈)

Todah 2022. 3. 9. 19:31
반응형

Animator를 만들고.. Animation을 만들고.. 물론 여러 동작들이 들어가는 캐릭터 같은 경우에는 Animator를 만드는 것이 관리하기가 편합니다.

 

하지만 간단한 이동이나 몇가지 안되는 동작때문에 Animator를 만드는 것은 생각보다 불편함이 큽니다.

 

그래서 이번에 소개할 것은 유니티 Asset인 Dotween입니다.

 

1. Dotween.To를 이용한 일반적인 사용방법.

 

static DOTween.To(getter, setter, to, float duration)

1. getter - 초기값이 될 변수 혹은 값

2. setter - 변환되는 값을 매개변수로 하는 함수 정의

3. to - 목표 값

4. duration - 시간

DOTween.To(()=> myFloat, x=> myFloat = x, 100, 1);
DOTween.To(()=> myVector, x=> myVector = x, new Vector3(3,4,5), 10);

DOTween.To(() => "", str => myString = str, "hello, world!", 3);

 

사실 이 방법은 생각보다 복잡하기 때문에 보통 2번째 방법을 많이 사용한다고 합니다.

 

2. 오브젝트를 직접 제어하는 방법.

자주 사용하는 오브젝트
1. Camera : 각도나 Field of View, Rect, OrthoSize 등을 제어하는데 사용한다.
2. Transform : 오브젝트의 모든 움직임을 제어할 수 있다.
3. Material : 색이나 알파값을 조정하는데 주로 사용된다.
4. RigidBody : Path를 조정하는데 주로 사용된다.

# Transform

Object.transform.DoMove(Vector3 목표값, float 변화시간, (bool 정수단위 이동여부));
Object.transform.DoRotate(Vector3 목표값, float 변화시간, (RotateMode 회전방식));
Object.transform.DoScale(Vector3 목표값, float 변화시간);

Object.transform.DoLocalMove(...); //로컬 좌표 이동
Object.transform.DoMoveX(...); //x축 이동

 

# Material

// 참조할 Material을 가져온 다음
SpriteRenderer redeye_renderer = redeye.GetComponent<SpriteRenderer>();

// 간단하게 사용할 수 있다.
redeye_renderer.DOFade(0f, 3f);

 

3. Ease

 

Ease는 트윈을 사용할 때 모션의 움직임을 결정해주는 아주 중요한 기능입니다.

시간의 흐름에 따라 변화되는 수치량을 조절하여 움직임에 특이점을 표현하는 방식입니다.

 

#Ease 적용법

사용하고 싶은 트위너 뒤에 .SetEase를 통해 원하는 타입을 지정하여 붙이면 됩니다.

Object.transform.DOLocalRotate(new Vector3(0, -120, 0), 10f).SetEase(Ease.InOutBack);

이제 움직임이 어떻게 진행되는지 한눈에 비교하기 위해 실제 오브젝트에 하나씩 연결하여 실행시켜보자.

일반 그래프

강도 (위에서 아래로 갈수록 강해짐) : Sine < Quad < Cubic < Quart < Quint < Expo

반응형

'All Development' 카테고리의 다른 글

Sparta_algorithm_course_01) velog  (0) 2022.06.30
Unity) ML-Agents  (0) 2022.03.16
LAST) 2022.03.03 - UI 프로토타입 설계  (0) 2022.03.03
Attraction) Horseback Riding Machine  (0) 2022.02.22
Rokoko) Motion Capture  (0) 2022.02.21