我目前正在尝试用 Godot C# 制作一个基本的射手,对于枪的射速,我一直在尝试不同的延迟系统。尽管我试图使脚本通用,但节点计时器仍然有效,并且计时器调用似乎只调用父脚本中的函数。
\n我现在正在研究 C# 的 Task.Delay 方法,它似乎也可以工作,因为它是一个异步操作,它看起来不会受到帧速率的影响或减慢游戏速度。
\n我的问题是,在游戏应用程序中使用 Task.Delay 是否存在任何已知问题:比如它是否不可靠,或者如果调用该方法的实例过多,它会崩溃吗?
\n这是下面的代码,尽管我认为它\xe2\x80\x99s 并不重要:
\n private void shoot() {\n //if "canShoot" spawn bullet\n ShootCooledDown();\n}\n\nprivate async void ShootCooledDown() {\n TimeSpan span = TimeSpan.FromSeconds((double)(new decimal(shotDelay)));\n canShoot = false;\n await Task.Delay(span);\n canShoot = true;\n} \nRun Code Online (Sandbox Code Playgroud)\n