KITASENJU DESIGN BLOG

memo, html, javascript, unity

UnityでTimelineを使い任意のメソッドを呼ぶ(書きかけ)

Unity2019からpackageManager経由になった。 タイムラインから任意のメソッドを呼び出すためのやり方です。 Signalを使うのが簡単だけど万能じゃないので自分でカスタムするのも良い。

Signal

やりかた

PlayableDirectorコンポーネントをGameObjectくっつけて、Playableというパラメータにtimelineアセットをセットする

SignalRecieverコンポーネントをどっかのGameObjectにくっつける。タイムラインウィンドウにドラッグする, signal emitterとして、加える。

タイムライン上で右クリックするとエミッターを加えられる。

そのエミッターで emit signalってところでcreate signalして信号の種類?を決める。種類とはエミッターを区別するためのもので、自分で決められる。

emit signalを選ぶと、エミット する先(GameObject, Class, Method) を指定できる。

面倒な点

ひとつのsignalに対し、パラメータが一つしか設定できないこと。 TestClass.Hoge(0); と TestClass.Hoge(1); を違う時間に呼びたい時、Signalは2個作る必要がある。 でも、手軽に使える。

そうしたくない場合はcustomするしかないと思う。

カスタムする

こちらを参考に。 [Unite2018] スクリプトによるTimelineがっつり拡張入門 - しがないエンジニアのブログ

手続きがすごく面倒。以下のような5つのファイルをいい感じに指定するとできるみたい。サンプルをうまく自己流にアレンジする。

f:id:kitasenjudesign:20200520140702p:plain

"FOOTER"