33 lines
900 B
C#
33 lines
900 B
C#
using System.Collections;
|
|
using UnityEngine;
|
|
using UnityEngine.Playables;
|
|
using UnityEngine.Timeline;
|
|
|
|
public class PauseMarkerReceiver : MonoBehaviour, INotificationReceiver
|
|
{
|
|
private PlayableDirector director;
|
|
private bool isPaused = false;
|
|
|
|
private void Awake()
|
|
{
|
|
director = GetComponent<PlayableDirector>();
|
|
}
|
|
|
|
public void OnNotify(Playable origin, INotification notification, object context)
|
|
{
|
|
if (notification is PauseMarker pauseMarker && !isPaused)
|
|
{
|
|
StartCoroutine(PauseAndResume(pauseMarker.pauseDuration));
|
|
}
|
|
}
|
|
|
|
private IEnumerator PauseAndResume(float duration)
|
|
{
|
|
isPaused = true;
|
|
director.Pause(); // 재생 일시정지
|
|
yield return new WaitForSecondsRealtime(duration); // 실제 시간 기준 대기
|
|
director.Play(); // 재생 재개
|
|
isPaused = false;
|
|
}
|
|
}
|