Асинхронные действия
Иногда вам может потребоваться запустить несколько действий одновременно, в этом случае есть 2 пути:
1) Запустить сразу несколько скриптов.
2) Использовать метод async { ... }.
О втором мы здесь и поговорим, работает он очень просто.
Базовый функционал
async {
//тут какая-то задача
}
Внутри async можно писать любые действия: спавнить нпс, использовать циклы и ветвления, короче говоря всё тоже, что и в простых скриптах.
После запуска задача будет выполняться параллельно с основным скриптом.
Дополнительные возможности
Иногда может потребоваться остановить или продолжить остановленную асинхронную задачу из другой части скрипта, такое тоже возможно. Это очень полезно в связке с бесконечными циклами.
val task = async {
//тут какая-то задача
}
task.stop() //остановить эту задачу
task.resume() //продолжить эту задачу
Остановить задачу можно только извне, не думаю, что есть необходимость делать это изнутри самой задачи.