我目前正在做教程学习从统一的代码,在这一节有奖金的挑战,这并不能帮助你解决它。它说,我必须防止球员从垃圾邮件空格键产卵狗。我是新的C#,我开始在网上寻找,但我看到一些关于协同例程,我仍然不知道这是什么,有一个简单的方法来做到这一点,我在网上搜索发现了类似的东西,但是我不能让它工作。我也试着做一些条件,比如canSpawn,但是我不知道如何很好地实现它,Unity给了我一个错误,我不能在bool和keypress事件之间使用&&
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControllerX : MonoBehaviour
{
public GameObject dogPrefab;
public float time = 2.0f;
public float timer = Time.time;
// Update is called once per frame
void Update()
{
timer -= Time.deltaTime;
if (timer > time)
{
// On spacebar press, send dog
if (Input.GetKeyDown(KeyCode.Space))
{
spawnDog();
}
timer = time;
}
void spawnDog()
{
Instantiate(dogPrefab, transform.position, dogPrefab.transform.rotation);
}
}
}
6条答案
按热度按时间puruo6ea1#
你已经很接近了。有一件事可能会让你更容易理解逻辑,那就是只向上计数,而不是试图向下计数。所以,在你的例子中,代码看起来像这样:
timer
会不断增加,当它大于您的time
值(2.0f)时,它允许您按下一个键。如果您按下一个键,timer
会重置为0,玩家需要等待time
时间(2.0f)才能再次按下空格键。wkftcu5l2#
我正在用我的手机。如果我犯了一些语法错误,我很抱歉。
pkln4tw63#
这是我基于秒表的解决方案:
eit6fx6z4#
我用了协程来完成这个任务,它的代码有点多,但是它工作得很好。
stszievb5#
另一个例子只是为了好玩
jaql4c8m6#
下面的代码是我用的,因为它很短很好用。
}