首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于打字游戏的Wave spawner和wave number

用于打字游戏的Wave spawner和wave number
EN

Stack Overflow用户
提问于 2019-01-10 21:50:06
回答 1查看 118关注 0票数 0

我正在尝试创建一个单词打字游戏,其中单词从屏幕顶部落下。我已经使用了here提供的代码来开始:

在WordSpawner.cs文件中,我希望单词像第一波那样有2个单词,一旦输入正确,下一波将在大约5秒的延迟后开始,并将有3个单词,依此类推。在每一波中,单词的数量应该增加1,并且在玩家还活着的时候会继续增加。

一旦一个波完成,将在等待时间内显示一个波数,然后开始下一个波。

下面是单词spawner的脚本:

代码语言:javascript
复制
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;
  } 

我试着跟随官方的unity空间射手来创建敌人,但我无法让它工作。我想这是因为上面的SpawnWord()方法有一个返回类型,然后这个函数在一个单独的文件"WordManager“中被调用。下面是word管理器文件中的脚本:

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2019-01-11 01:15:21

假设您的问题是如何让单词spawner在wave中工作,我将执行以下操作:

这个问题可以分成3个部分: 1)跟踪玩家何时输入了所有需要的单词。2)运行计时器以延迟下一波的开始。3)生成单词。

看起来您已经掌握了派生和删除这个词,所以在第2部分中,我将重点关注跟踪游戏状态。

现在,幸运的是,Unity为我们提供了更新功能,它将运行每一帧。从这里我们需要做的两件事是检查我们的列表中有多少活跃的单词,我们需要一个计时器来跟踪波之间的延迟。

为了实现这一点,你需要在to函数中运行一些代码来检查列表是否为空,并检查计时器是否已经过期(这是波之间的延迟)。从那里,如果你发现wave已经结束并且计时器过期的情况,调用你的函数来产生新的单词浪潮。

如果您想要增加每个wave产生的数量,请保留一个类整数,该整数在每次wave运行时都会递增,并将其作为生成多少个单词的参数提供。

如果我有什么不清楚的地方,请让我知道,我会尽力解释的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54130157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档