Как отложить запуск на х секунд? - PullRequest
0 голосов
/ 06 января 2020

Я искал вокруг и не мог найти ответ. У меня есть две сцены, одна с кнопкой воспроизведения, которая запускает следующую сцену (игру), а другая сцена - игра. У которого есть сценарий появления, который порождает случайные образцы препятствий Это можно увидеть здесь.

public class Spawner : MonoBehaviour {
public GameObject[] obstaclePatterns;

private float timeBtwSpawn;
public float startTimeBtwSpawn;
public float decreaseTime;
public float minTime = 0.55f;

private void Update()
{
    if (timeBtwSpawn <= 0)
    {
        int rand = Random.Range(0, obstaclePatterns.Length);    
        Instantiate(obstaclePatterns[rand], transform.position, Quaternion.identity);
        timeBtwSpawn = startTimeBtwSpawn;
        if (startTimeBtwSpawn > minTime) {
            startTimeBtwSpawn -= decreaseTime;
        }

    }
    else {
        timeBtwSpawn -= Time.deltaTime;
    }
}}

Я хотел бы, чтобы после нажатия кнопки воспроизведения и запуска игры была задержка на 1 секунду, прежде чем появиться спавнер. Я не уверен, как это сделать. Любая помощь будет оценена.

Ответы [ 3 ]

2 голосов
/ 06 января 2020

Вы можете напрямую использовать функцию запуска Unity в качестве сопрограммы.


private bool _canStart;

private IEnumerator Start()
{
    yield return new WaitForSeconds(whatyouwant);
    _canStart = true;
}

private void Update()
{
    if(!_canStart) return;

    whatyouwant
}
0 голосов
/ 06 января 2020

Вы должны установить timeBtwSpawn перед началом обновления Spawner:

timeBtwSpawn = 1; // seconds
0 голосов
/ 06 января 2020

, если вы хотите, чтобы подпрограмма начиналась после определенного c промежутка времени с момента загрузки сцены, вы можете использовать Time.timeSinceLevelLoad , эта переменная содержит время в секундах с момента последнего уровня ( была загружена сцена) Таким образом, вы можете либо создать скрипт, который активирует ваш скрипт spawner, либо добавить дополнительную проверку в ваш скрипт spawner

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