【Unity】InvokeRepeatingで指定時間後の止めたい
InvokeRepeating
メソッドを使用して何かのアクションを定期的に実行してから3秒後に停止したい場合、InvokeRepeating
を開始するメソッドとCancelInvoke
を使って呼び出しをキャンセルするメソッドの両方を用意する必要があります。以下のステップで実装できます:
- 定期的に実行されるメソッドを定義します。 例えば、何かのアクションを定期的に実行する
RepeatAction
メソッドを定義します。 InvokeRepeating
を使用して、定期的な実行をスケジュールします。Start
メソッド内でInvokeRepeating
を呼び出して、RepeatAction
が定期的に実行されるように設定します。- 3秒後に定期実行を止めるために、
CancelInvoke
を呼び出すメソッドを用意します。
こちらがサンプルコードです:
using UnityEngine;
public class Repeater : MonoBehaviour
{
void Start()
{
// 1秒ごとにRepeatActionを実行し始める
InvokeRepeating("RepeatAction", 0, 1.0f);
// 3秒後に全てのInvokeをキャンセル(止める)
Invoke("StopRepeating", 3.0f);
}
void RepeatAction()
{
// 定期的に行いたいアクション
Debug.Log("Action is repeated");
}
void StopRepeating()
{
// 全てのInvokeRepeatingをキャンセル
CancelInvoke("RepeatAction");
}
}
このコードでは、Start
メソッドでRepeatAction
が1秒ごとに実行されるように設定され、同時にStopRepeating
メソッドが3秒後に一度だけ呼び出されるように設定されています。StopRepeating
メソッドが実行されると、RepeatAction
の定期実行がキャンセルされます。
ディスカッション
コメント一覧
まだ、コメントがありません