C# 如何在c语言的视频游戏中对武器攻击进行半秒的冷却#
我需要对攻击进行冷却。现在你可以发垃圾邮件,可以快速挥杆,但我想更好地平衡游戏,并增加一个小的冷却时间。但我似乎在任何地方都找不到这样做的方法。有人有什么想法吗?您可能希望得到以下内容。由于我没有您的任何代码,我将假设这是在一个player类下,并将相应地编写C# 如何在c语言的视频游戏中对武器攻击进行半秒的冷却#,c#,unity3d,C#,Unity3d,我需要对攻击进行冷却。现在你可以发垃圾邮件,可以快速挥杆,但我想更好地平衡游戏,并增加一个小的冷却时间。但我似乎在任何地方都找不到这样做的方法。有人有什么想法吗?您可能希望得到以下内容。由于我没有您的任何代码,我将假设这是在一个player类下,并将相应地编写 class PlayerClass : MonoBehaviour { float timer = 0.0f; float cooldownTime = 1.0f; void Update() {
class PlayerClass : MonoBehaviour
{
float timer = 0.0f;
float cooldownTime = 1.0f;
void Update() {
if(timer > cooldownTime) {
if(Input.GetMouseButtonDown(0)) {
Attack();
timer = 0;
}
}
if(timer < cooldownTime + 1) // Add some leaniency for inaccurate floating points.
timer += time.DeltaTime;
}
}
class PlayerClass:monobhavior
{
浮动定时器=0.0f;
浮动冷却停机时间=1.0f;
无效更新(){
如果(计时器>冷却停机时间){
if(Input.GetMouseButtonDown(0)){
攻击();
定时器=0;
}
}
if(timer
显然,请尝试此代码。我现在正在工作,无法访问我的电脑,所以你需要处理未经测试的C#!当然,在谷歌上搜索一下计时器之类的东西,因为那将是你需要寻找的地方。如果您想了解更多,还可以查看IEnumerable中的异步代码
(>^3^)>您可以使用包含以下内容的IEnumerator函数:
public class YourClass : MonoBehaviour
{
private float cooldownTime;
private bool isCooldown;
// your code
private void Update()
{
if (!isCooldown)
{
// Do stuff
}
}
private IEnumerator Cooldown()
{
// Start cooldown
isCooldown = true;
// Wait for time you want
yield return new WaitForSeconds(cooldownTime);
// Stop cooldown
isCooldown = false;
}
}
只需在攻击处理程序中启动协同程序欢迎使用堆栈溢出!请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。关于主题和如何提问,请在此申请。StackOverflow不是设计、编码、研究或教程服务@易卜拉欣·马塔尔将这些事情张贴在