Timelineの再生
using UniRx;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
using static Util;
/// <summary>
/// タイムライン再生を管理
/// </summary>
[RequireComponent(typeof(PlayableDirector))]
public class HogeDirector : MonoBehaviour {
/// <summary>
/// タイムライン
/// </summary>
[SerializeField]
private TimelineAsset[] timelines;
/// <summary>
/// Playable Director
/// </summary>
private PlayableDirector director;
public Subject<HogeEvent> hogeEventStream = new Subject<HogeEvent>();
void Start() {
director = GetComponent<PlayableDirector>();
// Event を受け取ったら Timelineを再生
hogeEventStream
.Subscribe(PlayTimeline)
.AddTo(this);
}
void PlayTimeline(HogeEvent e) {
director.stopped += _ => {};
director.Play(timelines[e.index]);
}
}