😁
VisualScriptingのTimerはいいぞ
概要
みなさんはVisualScripting使ってますか?
私は使ってます。
Unity1Weekという1週間でゲームを作る企画があるのですが
そこで作ったゲームです。
ほとんどVisualScriptingを使って作りました。
さて、本題のTimerですが、UnityJapanさんで紹介されています。
このTimerが使い勝手がいいので私も紹介させて頂きます。
基本機能

このようなノードです。
| 名称 | 機能 | 備考 |
|---|---|---|
| Start | ノードの入口 | 必ず使う |
| Pause | 一時停止 | 使ってない |
| Resume | 再開 | 使ってない |
| Toggle | 停止再開制御 | 使ってない |
| Duration | タイマーの期間 | 必ず設定する |
| Unscaled | TimeScaleを無効にする | 使ってない |
| Started | 開始時に呼ばれる | 使ってない |
| Tick | 毎フレーム呼ばれる | すごい使う |
| Completed | 終了時に呼ばれる。ノードの出口 | ノードが続くなら使う |
| Elapsed | 経過時間 | 秒数毎に何かしたい時、Tickの場面で使う |
| Elapsed % | 経過時間を0~1の間で返す | 秒数毎に何かしたい時、Tickの場面で使う |
| Remaining | 残り時間 | 秒数毎に何かしたい時、Tickの場面で使う |
| Remaining % | 残り時間を0~1の間で返す | 秒数毎に何かしたい時、Tickの場面で使う |
各機能はこんな感じですが、半分くらい使ってません。
それでもすごい使い勝手がいいです。
使い方1 Transformの移動
上のUnityJapanさんの動画で説明されているのは、オブジェクトの移動ですね。
Dotweenのようなイメージかと思います。
私が作ったゲームでは

女の人にカメラが近づいていってます。
こんな感じで、シーン遷移の演出のカメラの移動に使用しました。

その時のスクリプトがこちらです。
Tick毎に、SetPostionを動かしています。
動かすための変数は、Remaininig %に定数を乗算しています。
使い方2 ただのウェイト

こちらのスクリプトの真ん中のTimerがそれです。
左のTimerから、右のLoadSceneの間にちょっとだけウェイトが欲しいなと思って追加しました。
上の例だと、2秒のウェイトがかかってます。
使い方3 カウントアップ
まずはこちら

ポイントをカウントアップして表現するために使用しました。

Tick毎にSetTextにポイント設定しています。
この変数は、Elapsed %を使って経過時間の増加とポイントを比例させています。
まとめ
Timerノードは、他にも可能性のある使い勝手のよさそうなノードですね。
これからも研究していこうと思います。
Discussion