Волновая икра и волновое число для набора текста - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь создать игру для набора текста, в которой слова падают с верхней части экрана. Я использовал приведенный код здесь , чтобы начать:

В файле WordSpawner.cs я хочу, чтобы слова появлялись в волнах так, как если бы в первой волне было 2 слова, и как только они были набраны правильно, следующая волна начнется через 5 секунд с задержкой и будет иметь 3 слова и тд. Количество слов должно увеличиваться на 1 в каждой волне и будет расти, пока игрок жив.

Как только одна волна завершена, во время ожидания будет отображаться номер волны, а затем начинается следующая волна.

Это скрипт для слова spawner:

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);
}

1 Ответ

0 голосов
/ 10 января 2019

Если ваш вопрос заключается в том, как заставить слово spawner работать волнами, я бы сделал следующее:

Проблема может быть разбита на 3 раздела: 1) Отслеживание, когда игрок ввел все необходимые слова. 2) Запуск таймера для отсрочки начала следующей волны. 3) Нерестить слова.

Похоже, у вас уже есть слово "порождение и удаление", поэтому я сосредоточусь на отслеживании состояний игры в части 2.

Теперь, к счастью для нас, Unity предоставляет нам функцию обновления, которая будет запускать каждый кадр. Отсюда нам нужно сделать две вещи: проверить, сколько активных слов у нас в списке, и нам понадобится таймер для отслеживания задержки между волнами.

Чтобы выполнить это, вам нужно будет запустить немного кода, таким образом, функцию Update, чтобы проверить, пуст ли список, и проверить, не истек ли таймер (задержка между волнами). Оттуда, если вы найдете случай, когда волна закончилась, а таймер истек, вызовите ваши функции, чтобы вызвать новую волну слов.

И если вы хотите увеличить число, порождаемое каждой волной, сохраняйте целочисленное значение класса, которое увеличивается каждый раз при запуске волны, и укажите его в качестве параметра для количества слов, которые должны появиться.

Если я ничего не понял, дайте мне знать, и я сделаю все возможное, чтобы объяснить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...