【Unity】ScriptPlayable<T0>からT0のPlayableBehaviour にアクセスする方法【Playables】

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

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です