2025-06-08 00:55:10 +09:00

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;
}
}