Unity/오늘 알아낸 것

타임라인으로 로고 씬 만들기

Potatopotatopotato 2023. 8. 3. 15:47

 

목소리 : 스파르타 내일배움캠프의 박종민 매니저님

 

타임라인을 배울 겸 간단한 로고씬을 만들어봤다

왼쪽 마우스 클릭을 누르면 스킵도 가능하게 하였다

스킵은 간단하게 마커를 이용하면 구현 할 수 있다

 

https://www.youtube.com/watch?v=oi4dxY0hIfw

마커 만드는 방법은 해당 동영상을 참고 하였다

 

using UnityEngine.Timeline;을 한 상태에서

Marker 클래스를 상속 받고 타임라인 GUI에서 오른쪽 마우스 클릭을 하면

상속 받은 해당 클래스의 이름이 뜨고 마커로 사용 할 수 있다

마커를 등록 한 뒤 Signal Track으로 markderIndex를 1씩 더해주기만 하면 스크립트로 제어하여 스킵 기능을 만들 수 있다

using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
using System.Linq;

public class LogoManager : MonoBehaviour
{
    PlayableDirector PD;

    int markerIndex = 0;

    private void Start()
    {
        PD = GetComponent<PlayableDirector>();
    }

    private void Update()
    {
        if(Input.GetKeyDown(KeyCode.Mouse0) == true)
        {
            var timelineAsset = PD.playableAsset as TimelineAsset;
            var markers = timelineAsset.markerTrack.GetMarkers().ToArray();
            if(markers.Length > markerIndex)
            {
                PD.Play();
                PD.time = markers[markerIndex].time;
            }
        }
    }

   public void AddMarkerIndex()
   {
        markerIndex++;
   }
}

해당 코드는 구글링으로 유니티 포럼에서 긁어왔다

 

타임라인은 강력하지만 아직 100% 활용을 하지 못하는것 같다

UI Toolkit에서도 사용 할 수 있는 예정이라고 하니(현재는 비공식 라이브러리로만 사용 가능) 다음은 UI Toolkit에서도 사용 해봐야겠다

아쉽게도 Dotween은 3년이 지난 지금 Timeline 소식이 없다..