Unity Dotween(글씨가 쳐지는듯한 효과 만들기)
- 목차
기존에는 애니메이션을 움직일때 Mathf.Lerp등의 함수를 이용해서 값을 수학적으로 계산하기 때문에 불편한 점이 많았다.
https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676
DOTween (HOTween v2) | 애니메이션 도구 | Unity Asset Store
Use the DOTween (HOTween v2) tool from Demigiant on your next project. Find this & more animation tools on the Unity Asset Store.
assetstore.unity.com
하지만 DotWeen을 이용하면 진짜 편하게 애니메이션을 제작할 수 있다. 무료버전을 다운할수 있으며,
Pro버전은 기본 15달러에 50퍼 할인을 자주하는 편이여서 할인할때 사면 7.5달러에 구매가능하다.
http://dotween.demigiant.com/getstarted.php
DOTween - Get Started
Before anything else Step 1 Download DOTween and unzip it anywhere in your Unity Assets folder (just not inside the Editor, Plugins or Resources directories). Setup After importing a new DOTween update, you have to setup DOTween in order to import/re-impor
dotween.demigiant.com
공식 사이트에서도 사용법이 자세히 써져있기도 하다.
하지만 다 영어로 써져있어서 구글 번역을 이용하는게 좋을거 같다.
다음은 닷트윈 사용법 예제이다.
먼저 에셋 스토어에서 dotween을 다운받은 후에 쓰고싶은 스크립트에다가 using DG.Tweening; 을 선언해 줘야 한다.
포지션,회전,스케일,컬러 등 값의 변화를 조절할수 있고,텍스트같은 경우 타자가 쳐지는 듯한 타이핑효과도 만들수 있다.
그리고 다음과 같이 선언해주면 된다.
코드 예시를 들자면..
transform.DOMove(Pos, 5);
-현재 오브젝트를 5초에 Pos위치까지 이동(.SetEase를 추가 안할시에는 목적지에 가서 부드럽게 감속하는 변화가 일어남)
transform.DOMove(Pos, 5).SetEase(Ease.Linear);
-현재 오브젝트를 5초에 Pos위치까지 이동시킨다.( '.SetEase(Ease.Linear)' 를 추가하면 등속운동을 한다고 생각하면 됨!)
transform.DOMove(Pos, 5).SetEase(Ease.InExpo).SetEase(Ease.OutBounce);
-현재 오브젝트를 5초에 Pos위치까지 이동하지만 목적지에 빨리 도착하고 남는 시간동안 통통 튀면서 감속운동 등으로 효과를 만들 수 있다!
다음은 닷트윈을 이용한 타이핑을 쳐지는듯한 효과를 만드는 예시 스크립트이다.
private IEnumerator TextPreviewCor()
{
for (;;)
{
this.txt.text = string.Empty;
this.txt.DOText("텍스트가 쳐지는 듯한 효과를 만들수 있습니다.",3.7f * DataController.duSettingData[1].value,false, ScrambleMode.None, null);
yield return new WaitForSeconds(DataController.duSettingData[1].value * 3.7f + 1f);
}
yield break;
}
코루틴을 만든다음에 지연 시키면 된다.
private void OnEnable()
{
this.cor = base.StartCoroutine(this.TextPreviewCor());
}
private void OnDisable()
{
if (this.cor != null)
{
base.StopCoroutine(this.cor);
}
}
그 다음에 호출하고 다시 지우면 된다!
까먹고 추가안한것이 있어서 추가로 수정하였습니다.
using System;
using System.Collections;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
private Coroutine cor;
public Text txt;
Using문 선언하고 오브젝트를 선언해줘야만 합니다!
'유니티,Unity,C#' 카테고리의 다른 글
오브젝트 풀링(원하는 스폰지역을 직접 만들어서 넣어주고 랜덤으로 소환) (0) | 2023.06.04 |
---|---|
유니티 json데이터 암호화하는법(AES암호화방식) (1) | 2023.05.20 |
몬스터를 소환하고 정해진 루트로 이동하게 하는 스크립트 (0) | 2023.04.24 |
몬스터가 정해진 루트로 이동하는 스크립트 (0) | 2023.01.05 |
Unity/C# - Time 함수 관련 정리 (0) | 2022.11.29 |