Invoke Unity
Оператор `invoke` в Unity используется для вызова методов (или геттеров/сеттеров) у объектов в сцене в определенный момент времени. Он позволяет выполнять как однократные вызовы, так и повторяющиеся действия с заданным интервалом.
Пример использования `invoke` для однократного вызова метода:
c#
using UnityEngine;
public class MyScript : MonoBehaviour
{
void Start()
{
Invoke("MyMethod", 2f); // Вызов метода MyMethod через 2 секунды
}
void MyMethod()
{
Debug.Log("Мой метод был вызван через Invoke!");
}
}
В данном примере метод `MyMethod` будет вызван через 2 секунды после запуска сцены. Название метода передается как строка в качестве аргумента в `Invoke`.
Если требуется повторять вызов метода с определенным интервалом, можно использовать вторую форму `Invoke`, где помимо названия метода указывается интервал повторения:
c#
using UnityEngine;
public class MyScript : MonoBehaviour
{
void Start()
{
InvokeRepeating("MyMethod", 2f, 1f); // Вызов метода MyMethod с интервалом 1 секунда, начиная с 2 секунды
}
void MyMethod()
{
Debug.Log("Мой метод был вызван через Invoke с интервалом!");
}
}
В этом случае метод `MyMethod` будет вызываться каждую секунду начиная с 2-й секунды сцены.
Также можно использовать лямбда-выражения вместо имени метода для более компактного кода:
c#
using UnityEngine;
public class MyScript : MonoBehaviour
{
void Start()
{
Invoke(() => {
Debug.Log("Лямбда метод был вызван через Invoke!");
}, 2f);
}
}
При вызове `Invoke` здесь передается лямбда-выражение, которое выполняет ту же функцию, что и метод `MyMethod` в предыдущих примерах.
Таким образом, `Invoke` и `InvokeRepeating` позволяют вызвать методы объекта в определенный момент времени или с интервалом, что может быть полезно для анимации, отложенной инициализации или других задач, требующих управления временем в Unity.