티스토리 뷰

우선 Sequence는 단일 객체가 아닌,

다수의 객체에 대한 여러 트윈을 하나로 묶고

등록한 순서대로 트윈을 재생하기 위해 사용합니다.

 

    Sequence sequence;

Sequence는 변수 선언 시 null 상태입니다.

 

        sequence = DOTween.Sequence();

 

static으로 선언된 생성자가 있습니다.

이 생성자를 통해 Sequence를 만듭니다.

 

시퀀스는 생성 즉시 자동으로 재생됩니다.

        sequence = DOTween.Sequence().Play();

Play()를 사용해 시퀀스를 재생할 수 있지만 자동 재생입니다.

        sequence = DOTween.Sequence().Pause();

이를 원치 않으면 트윈을 추가하면서 동시에 재생을 중단해야 합니다.

 

시퀀스에는 'Stop'은 없습니다.

Pause()로 일시 중단 시킬 수 있습니다.

이후에 Play()를 사용하면 중단 위치부터 이어서 재생합니다.

 

그렇다면 시퀀스를 처음부터 다시 재생하는 방법은 보통 두 가지입니다.

  1. Restart()
  2. Rewind() + Play()
        sequence = DOTween.Sequence();
        sequence.Restart();

Restart()는 즉시 시퀀스의 처음으로 돌아가 다시 재생을 합니다.

 

        sequence = DOTween.Sequence();
        sequence.Rewind(); 
        sequence.Play();

Rewind()를 사용하면 시퀀스의 처음으로 돌아가 일시중지합니다.

재생이 필요하면 다시 Play()로 실행하면 됩니다.

 

sequence.Kill();

기본적으로, 시퀀스는 재생을 마쳤을 때 Kill()됩니다.

DOTween에서 시퀀스가 Kill()되면, 그 시퀀스 안에 등록된 모든 트윈이 메모리에서 제거됩니다.

이후 해당 시퀀스는 재사용할 수 없습니다. 다시 사용하려면 새로 시퀀스를 생성해야 합니다.

이는 마치 키 프레임 애니메이션에서 모든 키 프레임이 삭제된 것과 비슷합니다.

하지만 이는 시퀀스가 null인 것은 아닙니다.

 

    public bool IsPlaying()
    {
        return sequence != null && sequence.IsActive() && sequence.IsPlaying();
    }

시퀀스가 Kill()된 상태라면

시퀀스의 상태를 나타내는 bool값 중 하나인 IsActive()는 false를 반환합니다.

 

        sequence.SetAutoKill(false);

시퀀스를 재사용하고 싶다면 자동으로 Kill()되지 않도록 해야 합니다.

 


 

  • IsPlaying(): 트윈이 재생 중인지 확인.
  • IsActive(): 트윈이 유효한 상태인지 확인.
  • IsComplete(): 트윈이 완료되었는지 확인.
  • IsPaused(): 트윈이 일시 중지되었는지 확인.
  • IsBackwards(): 트윈이 역방향으로 재생되고 있는지 확인.
  • IsInitialized(): 트윈이 초기화되었는지 확인.

 

위의 메서드는 시퀀스의 상태를 나타내는 bool값 메서드입니다.

 

 

개인적으로 두트윈을 사용하면서 시퀀스를 다룰 때마다 Stop()이란 개념이 없어서 자주 헷갈립니다.

경우를 잘 따져서 Rewind를 하여 처음으로 되돌리던가 Kill을 사용해서 아주 없애버리면 되겠습니다.

 


 

UI 작업에 있어서 두트윈은 신입니다.

복잡한 애니메이션이 아닌 간단한 Motion이라면

두트윈은 몇 줄만으로 만들 수 있습니다.

 

아래는 메시지 UI를 만든 예시입니다.

 

일반적인 메시지 출력은

이미 출력 중인 메시지가 있다면 출력되지 않도록 하였습니다.

하지만 중요한 메시지나 즉각적인 반응이 필요한 경우라면

앞선 메시지를 무시하고 출력되게 하였습니다.

 

이런 차이를 주기 위해 시퀀스의 재생 여부를 판단하는 방법을 공부해 보았습니다...

'유니티 > C# Code' 카테고리의 다른 글

[Object Pooling] Image Pop Up  (0) 2024.09.13
Parttern 응용 : Commander (+UniTask)  (0) 2024.09.12
Mesh Bake를 배웠습니다.  (0) 2024.08.31
RaycastAll과 Array.Sort  (0) 2024.08.31
GPT >> Application의 path 종류에 대해 설명해줘  (0) 2024.06.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함