今までは Start イベントユニットだけしか使ってなかったので、実行ボタンを押してスクリプトの最後までたどり着いたらそれで動作完了でした。
しかし実際のゲームでは実行中にキャラクターを動かしたり、当たり判定処理を行なったりする必要があります。

そこで Unity では Start だけではなく様々な用途に使われるイベントが用意されていて、それらのイベント毎にスクリプトを実行出来るようになっています。
それらのイベントのうち、Start イベントに次いで重要な Update イベントと Fixed Update イベントについてここでは説明します。

これら以外の重要イベントについては必要な時にその都度説明します。


1. 準備

まず準備です。
テスト用に別の Script Graph を用意します

Scripts フォルダの中に入り、空いている部分を右クリックしてメニューを表示し、Create → Visual Scripting → Script Graph を選ぶ
Scripts フォルダ内に「New Script Graph」というアセットが出来るので「Update Script」に名前を変更する
ヒエラルキーの PROGRAM をクリックしてインスペクタを表示する
Script Machine の Graph の List Script と書いてあるセルにアセットフォルダの Update Script をドロップする


2. Update イベント

ゲームの実行画面はアニメーションの様に1コマごとに描画を繰り返して表示しています(よくパラパラ漫画に例えられます)。
そのコマのことをフレームと呼びますが、描画フレーム毎に実行されるイベントが Update イベントです。
CPUやグラフィックカードなどの実行環境にも左右されますが、だいたい一秒間に10〜60フレームくらい Update イベントは実行されます。

Update イベントも Start イベントと同様にグラフウィンドウ内では Update イベントユニットとして表現されます。
例えば i という Integer 型の Graph 変数を作成したあと、図 1 のスクリプトを作成して実行してください。
Update イベントが繰り返し実行され、ブラックボードを見ると i がすごい勢いでカウントアップしていくのが分かります。


図1. Update イベントユニットの例


2. Fixed Update イベント

Fixed Update イベントも Update イベントと同様に繰り返し実行されるイベントです。
ただし Update イベントは描画フレーム毎に実行されるイベントで、マシンスペックなどにより実行されるタイミングが結構変化します。
一方 Fixed Update イベントは可能な限り一定の間隔(※)で実行するという違いがあります。
よって実行タイミングが重要である物理演算処理などで良く使われます。

※ デフォルトでは 0.02 秒(50FPS)で、この数字は Project Setting → Time → Fixed Timestep で変更できます

さてFixed Update イベントもグラフウィンドウ内では Fixed Update イベントユニットとして表現されます。
例えば 図 1 の Update を Fixed Update に置き換えた図 2 のスクリプトを作成して実行してください。
やはり繰り返し実行され、ブラックボードを見ると i がすごい勢いでカウントアップしていくのが分かります。


図2. Fixed Update イベントユニットの例