【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リファレンスにも書いてほしかった。

コメントを残す