본문 바로가기
유니티 기술들 연습

1 닷트윈(DoTween)

by 하타라시 2023. 9. 18.

1. 이동 > DOMoveX(위치,시간,bool값)

본인 위치에서 x 좌표를 + 5를 주었고, 3초동안 이동. 디폴트 bool값은 false이므로 0.0x같이 소수점 단위로 이동함

true로 주면 raw처럼 1,2,3같이 정수 단위로 이동

 

실행전

 

실행후

1-2 UI에도 적용이 되는가

테스트 직전에 using에 UnityEngine.UI를 추가해주고 만일 Text 컴포넌트가 있을 시 다른 스크립트가 실행되도록 함.

카메라 범위에서의 1/5 만큼 이동 하도록 설정

 

 

실행전

 

실행후

 

2 이동 > DOLocalMoveX(위치,시간,bool값)

Local범위를 기준으로 이동함

실행전
실행후

 

 

3 회전 > DORotate(회전할 Vector3, 시간)

그냥 x축 180도, z축 90도 회전하게끔 해봤더니 별도의 설정 없이 알아서 돌아간당...

실행전
실행후

 

4 크기 DOScale(크기,시간)

의도한 대로 , scale이 5,5,0이 됨.

2D 프로젝트여서 z값 고의로 0으로 줬더니 잘되네요.

실행전
실행후

 

5 색상조절 > DOColor(색깔,시간)

material말고도 SpriteRenderer에도 되면은 다른 것도 될듯험.

실행전
실행후

6 흔들기 > DOShakePosition /DOShakeRotation(시간)

DOShakePosition이나 DOShakeRotation이나 비슷한 동작이므로 생략.

실행전
실행후

7 역동적으로 > SetEase(ease타입의 enum인듯)

Prepend 맨 앞에 추가

Append 맨 뒤에 추가

Join 추가된 동작과 동시에 작동

Insert 순서와 상관 없이 동작

실행전
실행후

 

오른쪽으로 이동하다가 왼쪽으로 튕기듯이 이동함.

 

Last 조합 > Sequence()

저 상태에서

1. DOLocalMove를 움직이는 것 Append

2. DOShakePosition으로 흔들는 것 Append

3. DOColor로 색깔바꾸는 것 Append

4. Join을 통하여 색깔바꾸는 것과 동시에 크기 조절

5. Sequence.Play() 이래야 실행되는 듯....

 

실행전
실행후

 

DOTween.Sequence().SetAutoKill(false)이때 SetAutoKill의 디폴트 값은 true인데, 한번 사용하면 삭제 된다는 의미..

false줄 경우 재활용하는 상황을 고려하는듯험..

 

레퍼런스 보면은 Loop같이 별에별것이 많으므로,,, 실제 게임에 적용할 땐 좀 더 옵션들을 활용해야것네요,,

 

 

간단히 알아 보는 것은 완료하였습니당..!!

 

참고한 블로그 https://velog.io/@livelyjuseok/Unity-DOTween-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

닷트윈 레퍼런스 DOTween - 시작하기 (demigiant.com)

 

유니티의 모든 기술들을 습득하는 그날까지,,!

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

혹시나 코드는 남겨봅니다

아래는 별 내용 없습니다.

 

        Text tempText = GetComponent<Text>();

        #region 월드 범위 기준으로 이동
        /*
        if (tempText)
        {
            transform.DOMoveX(tempText.rectTransform.position.x + Camera.main.scaledPixelWidth / 5, 3);
        } else
        {
            transform.DOMoveX(transform.position.x + 5, 3);
        }
        */
        #endregion

        #region 로컬 범위 기준으로 이동
        /*
        if (tempText)
        {
            transform.DOLocalMoveX(Camera.main.scaledPixelWidth / 5, 3);
        }
        else
        {
            transform.DOLocalMoveX(5, 3);
        }
        */
        #endregion

        #region 회전
        //transform.DORotate(new Vector3(180,-0,90),3);
        #endregion

        #region 크기조절
        //transform.DOScale(new Vector3(5,5,0),3);
        #endregion

        #region 색상조절
        /*
        SpriteRenderer spriteRenderer = GetComponent<SpriteRenderer>();
        if(spriteRenderer)
        {
            spriteRenderer.DOColor(Color.blue,3);
        }
        */
        #endregion

        #region 흔들기
        //transform.DOShakePosition(transform.position.x+5,3);
        //transform.DOShakeRotation(3);
        #endregion

        #region 역동적으로 이동
        //transform.DOMoveX(transform.position.x + 5, 3).SetEase(Ease.InBounce);
        #endregion

        #region 조합
        /*
        Sequence sequence;
        sequence = DOTween.Sequence().SetAutoKill(false).Pause()
            .Append(transform.DOLocalMove(new Vector3(0, 0, 5), 3))
            .Append(transform.DOShakePosition(3))
            .Append(GetComponent<SpriteRenderer>().DOColor(Color.blue, 3))
            .Join(transform.DOScale(new Vector3(5, 5, 0), 3));

        sequence.Play();
        */
        #endregion

 

'유니티 기술들 연습' 카테고리의 다른 글

2 WheelCollider  (0) 2023.09.19