我正在尝试创建一个单词输入游戏,其中单词从屏幕顶部掉落。我已使用here提供的代码开始使用:
在WordSpawner.cs文件中,我希望单词以波浪的形式产生,例如第一个波浪将有2个单词,并且正确键入后,下一个波浪将在大约5秒钟的延迟后开始并具有3个单词话语等等。每一波中的单词数应增加1,并且在播放器还活着的时候将继续这样做。
一个波完成后,将在等待时间内显示一个波编号,然后下一个波开始。
这是生成器一词的脚本:
public GameObject wordPrefab;
public Transform wordCanvas;
public WordDisplay SpawnWord () {
Vector3 randomPosition = new Vector3(Random.Range(-2.5f, 2.5f), 7f);
GameObject wordObj=Instantiate(wordPrefab, randomPosition,Quaternion.identity, wordCanvas);
WordDisplay wordDisplay = wordObj.GetComponent<WordDisplay>();
return wordDisplay;
}
我尝试跟随官方的统一太空射击游戏来产生敌人,但我无法使其正常工作。我认为是因为上面的SpawnWord()方法具有返回类型,然后在单独的文件“ WordManager”中调用此函数。这个脚本来自单词管理器文件:
public class WordManager : MonoBehaviour {
public List<Word> words;// list of 50 words
public WordSpawner wordSpawner;
private bool hasActiveWord;
private Word activeWord;
public void AddWord ()
{
Word word = new Word(WordGenerator.GetRandomWord(), wordSpawner.SpawnWord()); // this is where the SpawnWord() is called
words.Add(word);
}
答案 0 :(得分:0)
假设您的问题是如何使“ spawner”一词发挥作用,我将执行以下操作:
该问题可分为3部分: 1)追踪玩家输入所有所需单词的时间。 2)运行计时器以延迟下一波的开始。 3)生成单词。
看起来您已经有了“生成和移除”这个词,所以在第二部分中,我将重点介绍游戏状态。
现在对我们来说幸运的是Unity为我们提供了Update函数,它将在每一帧运行。从这里开始,我们需要做的两件事是检查列表中有多少个活动单词,并且我们需要一个计时器来跟踪波形之间的延迟。
为了完成此操作,您需要在代码中运行Update函数,以检查列表是否为空,并检查计时器是否已过期(即两次波形之间的延迟)。从那里,如果您发现波动结束并且计时器到期的情况,请调用函数以产生新的波动词。
如果要增加每个wave产生的数量,请保留每次运行wave时都会增加的类整数,并将其作为产生多少个单词的参数提供。
如果我不清楚任何事情,请告诉我,我会尽力解释。