導入
Unity での Invoke と InvokeRepeating の使用
1.メソッドを呼び出す
Invoke メソッドは、指定した時間後に関数を呼び出すために使用されます。その構文は次のとおりです。
public void Invoke(string methodName, float time);
ここで、「methodName」は呼び出される関数の名前で、「time」は関数が呼び出されてからの時間 (秒単位) です。たとえば、次のコードは 3 秒後に「NextWave」という名前の関数を呼び出します。
Invoke("NextWave", 3f);
実行すると、Unity は「NextWave」という名前の関数を呼び出す前に 3 秒間待機します。関数はパブリックである必要があり、パラメーターを持たないことに注意してください。パラメータを渡したい場合は、ラムダ式を使用するか、Unity のコルーチンを使用して実現できます。
2. InvokeRepeating メソッド
InvokeRepeating メソッドは、指定された時間後に関数を繰り返し呼び出すために使用されます。その構文は次のとおりです。
public void InvokeRepeating(string methodName, float time, float repeatRate);
ここで、「methodName」は呼び出される関数の名前、「time」は関数が呼び出された後の時間 (秒)、「repeatRate」は各呼び出し間の秒単位の時間間隔。たとえば、次のコードは、「SpawnEnemy」という関数を 3 秒後に 1 秒ごとに繰り返し呼び出します。
InvokeRepeating("SpawnEnemy", 3f, 1f);
実行時、Unity は 3 秒間待機してから、「SpawnEnemy」という名前の関数を 1 秒ごとに繰り返し呼び出し始めます。関数はパブリックである必要があり、パラメーターを持たないことに注意してください。パラメータを渡したい場合は、ラムダ式を使用するか、Unity のコルーチンを使用して実現できます。
さらに、CancelInvoke メソッドを使用して、Invoke および InvokeRepeating メソッドの呼び出しを停止できます。たとえば、次のコードは、「NextWave」という名前の関数の Invoke 呼び出しを停止します。
CancelInvoke("NextWave");
Invoke および InvokeRepeating メソッドを使用して、関数の呼び出しを簡単に遅らせたり、繰り返し呼び出したりします。ただし、正しく使用しないと、パフォーマンスやその他の問題が発生する可能性があることに注意してください。より細かい制御が必要な場合は、Unity のコルーチンまたはタイマーを使用して達成できます