Использование асинхронных задержек C# в GodotC#

Место общения программистов C#
Anonymous
Использование асинхронных задержек C# в Godot

Сообщение Anonymous »

В настоящее время я экспериментирую с Godot C#, создавая базовый шутер, а для определения скорострельности я экспериментирую с различными системами задержки. Таймеры узла работают, хотя я пытаюсь сделать сценарий универсальным, а вызовы таймера, похоже, вызывают только функции родительского сценария.
Сейчас я рассматриваю метод Task.Delay в C#. и, похоже, это работает, поскольку это асинхронное действие, похоже, на него не влияет частота кадров и он не замедляет игру.
Мой вопрос: есть ли какая-либо известная проблема? для использования Task.Delay в игровых приложениях: например, он ненадежен или может привести к сбою, если вызывается слишком много экземпляров метода?
Вот код ниже, хотя я не думаю, что это важно :
private void shoot() {
//if "canShoot" spawn bullet
ShootCooledDown();
}

private async void ShootCooledDown() {
TimeSpan span = TimeSpan.FromSeconds((double)(new decimal(shotDelay)));
canShoot = false;
await Task.Delay(span);
canShoot = true;
}


Подробнее здесь: https://stackoverflow.com/questions/700 ... s-in-godot

Вернуться в «C#»