予測デバッグとライブデバッグ
Note
バージョン 2019/2020 LTS を使用している場合は Unity Asset Store から Visual Scripting パッケージをダウンロードしてください。
Visual Scripting は、再生モードに入る前に、スクリプト内でエラーを発生させる可能性のあるノードを予測して示すことができます。また、グラフを分析し、欠落したコンポーネントや Null 参照を予測します。ランタイムでエラーが発生すると、エラーのソースがグラフ内で強調表示されます。
予測デバッグ
適切に設定されていないノードや、エラーを発生させる可能性のあるノードは、黄色で表示されます。確実にエラーを発生させるノードはオレンジ色で表示されます。どちらの場合でも、ノードを調査し、通常の色に戻るまで必要な変更を加えてください。
例: Log ノードは、コンソールに出力する必要のある Message (メッセージ) が欠如しているためにオレンジ色で表示されています。
A + B の結果を Message に接続すると、Log ノードが通常の状態に戻ります。ただし、Add ノードは、最初のオペランド (A) が欠落しているためにオレンジ色になります。
両方のオペランドに値が提供されれば、全てが通常の色に戻ります。
B 入力ポートはデフォルトのインライン値を持つため、接続される必要がありません。
Null 参照
Null Reference Exception (Null 参照例外) は非常に一般的です。これは、値を必要とするパラメーターが、"何もない"、つまりスクリプト言語で言う "null" を受け取る場合に発生します。
Unity > Preferences > Visual Scripting > Flow Graph にある Predict Potential Null References のオプションがオンになっている場合は、Visual Scripting が Null Reference (Null 参照) の予測を試みます。
例: Destroy ノードはインライン値を持っていますが、それが "None" (Null) に設定されているために、オレンジ色で表示されています。
Null のパラメーターを使用できるノードも稀にあります。残念ながら、これはコードベース解析によって把握することができないため、Visual Scripting ではそういったノードも誤判定によりオレンジ色で表示されます。この問題が繰り返し起こる場合は、Predict Potential Null References の設定をオフにしてください。
コンポーネントの欠落
コンポーネントを必要とし、指定のコンポーネントを持たないゲームオブジェクトあるいはコンポーネントを渡すノードが使用されている場合は、警告としてそのノードが黄色で表示されます。例えば以下の画像で、Add Force ノードの各値入力にはデフォルト値がありますが、Visual Scripting は、それを所有するゲームオブジェクトが Rigidbody を持っていないことを検出して警告を出します。
このノードはオレンジ色にはなりません。なぜなら、ランタイムでゲームオブジェクトにコンポーネントを追加することは可能なので、呼び出す前に必要なコンポーネントを追加すれば、このノードが必ずクラッシュを発生させるとは限らないからです。このユースケースがプロジェクトで頻繁に発生する場合は、Unity > Preferences > Visual Scripting > Flow Graphs から Predict Potential Missing Components デバッグを無効化することも可能です。
ライブデバッグ
再生モードでは、現在アクティブなノードが青で強調表示されます。エラーが発生した場合、その原因となったノードが赤で強調表示されます。
例: 以下は、欠陥のあるグラフの一例です。スペースキーを押すと、結果としてコンソールに "my third favorite fruit" と記録されます。
Play が選択されてオブジェクトがクリックされると、次のようになります。
クリックすると同時に全てのノードがアクティベートされて青で強調表示されます。しかし、コンソールでエラーが発生しています。
欠陥のあるノードが赤で表示されます。
よくある間違いは、実際は配列インデックスは 0 から開始するにも関わらず、1 から開始すると想定してしまうことです。 スクリプトではインデックスは常に0 から始まります。最初の項目はインデックス 0、2 番目はインデックス 1、3 番目は 2、と続きます。3 番目の項目を取得するには、フィールドに 2 と入力する必要があります。