首页 > 解决方案 > 如何延迟x秒启动?

问题描述

我四处寻找,并不能完全找到答案。我有两个场景,一个带有开始下一个场景(游戏)的播放按钮,另一个场景是游戏。它有一个生成器脚本,可以生成随机模式的障碍物。可以在这里看到。

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 秒的延迟。我不知道该怎么做。任何帮助,将不胜感激。

标签: c#unity3d2d

解决方案


您可以直接将 Unity 的 Start 函数用作协程。


private bool _canStart;

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

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

    whatyouwant
}

推荐阅读