【Unity】ScriptPlayable<T0>からT0のPlayableBehaviour にアクセスする方法【Playables】
2020年7月1日
APIリファレンスに載ってなく無駄に時間を費やしたのでメモ
ScriptPlayable<T>.GetBehaviour()
でTにアクセスできます。
マニュアルにありました。
APIリファレンスしか見てなかったから、無駄に時間がかかった。
経緯としては
public static ScriptPlayable<ParticleControlPlayable> ParticleControlPlayable.Create(PlayableGraph graph, ParticleSystem component, uint randomSeed)
で作成した ScriptPlayable から ParticleSystem にアクセスしたかっただけです。
コードを書くとこんな感じ。
var playable = UnityEngine.Playables.PlayableOutputExtensions.GetSourcePlayable( playableOutput);
var scriptPlayable = (UnityEngine.Playables.ScriptPlayable<UnityEngine.Timeline.ParticleControlPlayable>)playable;
var particleControlPlayable = scriptPlayable.GetBehaviour();
UnityEngine.Debug.Log( $"{particleControlPlayable.particleSystem.name} {particleControlPlayable.particleSystem}");
APIリファレンスにも書いてほしかった。