docs.unity3d.com
    目次を表示する/隠す

    Time ノード

    Note

    バージョン 2019/2020 LTS を使用している場合は Unity Asset Store から Visual Scripting パッケージをダウンロードしてください。

    Time ノードには、Timer、Cooldown、および Wait ノードが含まれます。

    Wait

    Wait ノードは、スクリプトの残りの部分の実行を遅延させます。遅延は設定の秒数または条件に基づいて行われ、先に進むには、これが満たされる必要があります。

    Unity では 非同期性 (遅延実行) が コルーチン (not multithreading) によって処理されます。Wait ノードをサポートするためにはスクリプトをコルーチンとして実行するように Visual Scripting に指示する必要があります。これを行うには、スクリプトを開始する最初のイベントの Coroutine チェックボックス をオンにしてください。これは Graph Inspector で行えます。

    イベントに、コルーチンとして実行されることを示す小さな二重矢印アイコンが表示されます。

    コルーチンのチェックボックスがオンになっていない場合、Wait ノードに到達した時に、ポートが 'コルーチン内でのみトリガー可能である' ことを通知するランタイムのエラーが表示されます。

    全ての Wait ノードは、ループ内やシーケンス内でも使用されます。

    Wait For Seconds

    Wait For Seconds ノードは、最も単純で一般的な Wait ノードです。実行を一定秒数間遅延させます。

    Wait Until

    Wait Until ノードは、指定の条件が満たされるまで実行を停止します。例えば、オブジェクトが十分近くなるまで待つ、といったことが可能です。

    Wait While

    Wait While ノードは、Wait Until ノードの逆です。特定の条件が満たされている限り実行を停止します。例えば、オブジェクトが範囲外にある間は待つ、といったことが可能です。

    Wait For Frame

    Wait For End Of Frame ノードと Wait For Next Frame ノードは、その名の通り、Unity の更新ループ内の特定の時点に到達するまで実行を遅延させます。詳細は イベントの実行順序 を参照してください。

    Wait For Script

    Wait For Script ノードは、全ての入力スクリプトが少なくとも 1 回入力されるまで実行を遅延させます。これは、複数のイベントやフレームで発生する条件をグループ分けするのに役立ちます。他の言語では、この概念は "promises" (約束) と呼ばれることもあります。

    Cooldown

    Cooldown ノードは、限られた回数しか入力スクリプトがトリガーできない場合に、時間制限を実装します。

    Cooldown が使用可能な場合は、入力スクリプトが Ready ポートに送られます。使用可能でない場合は Not Ready ポートに送られます。

    Duration ポートは、Cooldown が再び使用可能になるまでに掛かる時間を決定します。Unscaled にチェックマークを入れると timeScale が無視されます。

    Tick ポートは、Cooldown がアクティブな間、毎フレーム呼び出されます。これは、アクションが再び呼び出し可能になるまでの残り時間のインジケーターを表示する GUI コードを更新するのに適した場所です。その値を取得するにあたっては、以下の 2 つのオプションがあります。

    • Remaining: Ready (準備完了) になるまでの残り秒数を返します。
    • Remaining %: 0 (Ready) と 1 (Not Ready) の間の値を返します。

    Cooldown が Ready になると同時に Completed ポートがトリガーされます。このポートをトリガーするために繰り返し入力スクリプトを渡す必要はありません。

    最後に、Reset ポートをトリガーすることで、Cooldown を強制的に Ready にしてその内部のタイマーをリセットすることができます。

    例えば以下は、マスクされたスプライトと (再び射撃可能になるまでの残り時間を示す) テキストを使用した、Cooldown による単純な射撃メカニクスです。

    Timer

    Timer ノードは、中断可能な時間進行の実装と監視を行います。

    Duration ポートは、Cooldown が再び使用可能になるまでに掛かる時間を決定します。Unscaled にチェックマークを入れると timeScale が無視されます。

    Timer は Start 入力をトリガーすることで開始され、それによって Started 出力がトリガーされます。

    Timer は Pause 入力と Resume 入力で一時停止と再開が可能です。あるいは Toggle 入力によって、これらの状態間で交互に切り替わることができます。

    Tick ポートは Timer がアクティブな間、毎フレーム呼び出されます。時間の測定値を取得するにあたっては、以下の 2 つのオプションがあります。

    • Elapsed: Timer 開始後の経過時間を返します。
    • Remaining: Timer 終了までの残り時間を返します。

    これらの測定値は、絶対数の秒数で取得するか、% (0 と 1 の間の値) で取得することができます。これは線形補間に役立ちます。

    Timer が終了すると同時に Completed ポートがトリガーされます。

    例えば以下は、徐々に赤くなってから破壊されるスプライトの、単純な自動破壊メカニクスです。

    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)