たくあんポリポリ

勉強したことを載せていきます。最近、技術系の記事はZennに書いています。(https://zenn.dev/chittai)

【Unity】Timelineでクリップの経過時間を取得する方法

今回は、LookingGlassで作成したアプリで必要となった、Timelineで経過した時間を取得する方法について書きます。ほぼメモです。LookingGlassで作成したアプリについての説明は別で書こうと思ってます。

やりたいこと

ある一定区間において、経過した時間の情報を取得して、その経過した時間によって処理を切り替える処理を書きたい。

実現方法の検討

UnityのTimlelineでクリップが開始してからの時間が取れればよいのではないかと考えました。

Timelineの始め方

下記サイトを参照。私の場合はTimelineRootという空オブジェクトを作成してTimelineをはじめました。
www.crossroad-tech.com

クリップの経過時間の取得スクリプト

下記サイトを参照。
tsubakit1.hateblo.jp


基本的に、ITmeControlインタフェースを継承させて、下記メソッドを実装します。

  • OnControlTimeStart タイムラインクリップが開始した時に呼び出される
  • OnControlTimeStop タイムラインクリップが終了した時に呼び出される
  • SetTime タイムラインクリップがアクティブな各フレームで呼び出される

docs.unity3d.com


このメソッドの中で、SetTimeの引数に指定されているtimeが経過時間となります。そのため、このtimeの情報を使用して実装することになります。

public void SetTime (double time)
{
}

感想

使い方など忘れたときのメモように。