Важные вещи – резюме
Перейдем к концепциям, которые я считаю наиболее важными для работы с корутинами.
Это, конечно, не единственные ситуации, в которых сопрограммы полезны. Думайте о перечисленных пунктах как о руководящих принципах, а не как о правилах.
Unity фактически имеет встроенный метод для задержки выполнения метода, известного как invoke. Этот метод полезен, если вам нужно что-то, что произойдет по прошествии определенного периода времени.
Существует также метод invokerepeating, который будет ждать x секунд, а затем повторять процедуру каждые y секунд после первоначального ожидания и работать вечно.
Эти методы существуют, поэтому вам не нужно создавать сопрограмму, если вы просто хотите, чтобы что-то простое повторялось или откладывалось всякий раз, когда что-то происходит.
По книге Lucas Faustino “Unity5 Coroutines”.
Содержание
1 часть. Что такое корутины.
2 часть. Coroutine vs Update.
3 часть. Примеры использования сопрограмм.
4 часть. Финал.
Перейдем к концепциям, которые я считаю наиболее важными для работы с корутинами.
- Состояния - сопрограммы очень полезны, когда вам нужно изменить состояние объекта. Это может быть ИИ (ходьба, атака и т.д.). Они могут использоваться для других вещей, которые имеют состояние или статус (состояние, в котором находится текущая сцена или в какой фазе находится игра в настоящее время и т. д.)
- Задержка выполнения - сопрограммы также хороши для реализации задержки. Хорошим примером является пример со светильниками из главы 2. Или, например, у вас есть таймер для головоломки, и ее состояние сбрасывается, если она не решена до истечения таймера.
- One Shots - сопрограмма может быть легко настроена, если вам нужна ситуация с одним действием. Возможно, это дверь, которая открывается после завершения головоломки, или персонаж, который перемещается в новое место после завершения квеста. В принципе, все, что нужно обновить в течение конечного периода времени и потом не запускать.
Это, конечно, не единственные ситуации, в которых сопрограммы полезны. Думайте о перечисленных пунктах как о руководящих принципах, а не как о правилах.
Invoke
Есть еще одна вещь, которую я хотел бы осветить, и это касается использования сопрограмм для задержки.Unity фактически имеет встроенный метод для задержки выполнения метода, известного как invoke. Этот метод полезен, если вам нужно что-то, что произойдет по прошествии определенного периода времени.
public class InvokeExample : MonoBehaviourВ этом примере сначала длится ожидание 5 секунд, а затем запускается наш тестовый метод, который просто выводит строку "Testing testing testing " на консоль. Чтобы вызвать что-то, вы просто вводите строковое имя метода, который вы хотите вызвать, а затем количество времени, которое является задержкой.
{
Private void Start()
{
Invoke(“Test”, 5f);
}
private void Test()
{
Debug.Log(“Testing testing testing”);
}
}
Существует также метод invokerepeating, который будет ждать x секунд, а затем повторять процедуру каждые y секунд после первоначального ожидания и работать вечно.
public class InovkeRepeatingExample : MonoBehaviourПриведенный выше пример похож на предыдущий, за исключением того, что будет задержка 2,5 секунды, вывод на консоль, ожидание 5 секунд, вывод на консоль, ожидание 5 секунд и постоянное повторение этого.
{
private void Start()
{
InvokeRepeating(“Test”, 2.5f, 5f);
}
private void Test()
{
Debug.Log(“Testing testing testing”);
}
}
Эти методы существуют, поэтому вам не нужно создавать сопрограмму, если вы просто хотите, чтобы что-то простое повторялось или откладывалось всякий раз, когда что-то происходит.
По книге Lucas Faustino “Unity5 Coroutines”.
Содержание
1 часть. Что такое корутины.
2 часть. Coroutine vs Update.
3 часть. Примеры использования сопрограмм.
4 часть. Финал.
