MonoBehaviour.InvokeRepeating
Declaration
public void InvokeRepeating(string methodName, float time, float repeatRate);Параметры
| Параметр | Описание |
|---|---|
| methodName | Имя вызванного метода. |
| время | Время ожидания в секундах перед первым вызовом. |
| repeatRate | Интервал в секундах между вызовами методов. |
Описание
Вызывается указанный метод после указанной задержки, а затем повторяется с указанной частотой.
Чтобы отменить InvokeRepeating, используйте MonoBehaviour.CancelInvoke.
Параметры time и repeatRate зависят от Time.timeScale. Например, Time.timeScale из 2 фактически вдвое уменьшает значения реального времени time и repeatRate, в то время как Time.timeScale из 0.5 удваивает их. Если Time.timeScale равны 0, то method никогда не вызовется.
Вы не можете изменить значение интервала repeatRate во время выполнения InvokeRepeating. Вы должны отменить и повторить вызов, чтобы изменить его.
using UnityEngine; using System.Collections.Generic;
// After an initial 2 second wait, launch a projectile every 0.3 seconds
public class ExampleScript : MonoBehaviour { public Rigidbody projectile;
void Start() { InvokeRepeating(nameof(LaunchProjectile), 2.0f, 0.3f); }
void LaunchProjectile() { Rigidbody instance = Instantiate(projectile);
instance.velocity = Random.insideUnitSphere * 5; } }