Unity3d 如何在统一中无休止地产生一个对象

Unity3d 如何在统一中无休止地产生一个对象,unity3d,Unity3d,我是新来的。我想知道以下问题的参考资料:每隔(比如3秒钟)一个立方体就会在天空中生成,然后落到地上,这个过程会一直持续下去 我必须使用一些循环,但问题是如何重复生成。我认为对于游戏开发人员来说,这非常简单,因此感谢您的帮助。因此,如果我理解正确,您希望每隔几秒钟显示一次对象。您可以使用协同程序来实现这一点。您可以这样做: private bool _spawning = true; void Start() { StartCoroutine(SpawnRoutine()); } IEn

我是新来的。我想知道以下问题的参考资料:每隔(比如3秒钟)一个立方体就会在天空中生成,然后落到地上,这个过程会一直持续下去


我必须使用一些循环,但问题是如何重复生成。我认为对于游戏开发人员来说,这非常简单,因此感谢您的帮助。

因此,如果我理解正确,您希望每隔几秒钟显示一次对象。您可以使用
协同程序来实现这一点。您可以这样做:

private bool _spawning = true;
void Start()
{
    StartCoroutine(SpawnRoutine());
}

IEnumerator SpawnRoutine()
{
    while (_spawning == true)
    {
        yield return new WaitForSeconds(3); // wait 3 sec
         GameObject new_obstacle = Instantiate(obstacle, transform.position = new Vector3(2 /* x postion*/, 2/* y position*/ , 2/* z position*/), Quaternion.identity);
    }

}

如果
\u sprowning
设置为
true

使用@Tygo这样的协同程序是一个很好的解决方案,那么这个循环就不会结束

另一种选择是简单地使用Update函数

using UnityEngine;

public class CubeSpawner : MonoBehaviour
{
    public GameObject cubePrefab;
    public float seconds;

    private float elapsedSeconds;
    
    
    protected void Update()
    {
        elapsedSeconds += Time.deltaTime;
        if (elapsedSeconds >= seconds)
        {
            Instantiate(cubePrefab, transform.position, Quaternion.identity);
            elapsedSeconds = 0;
        }
    }
}
您将使用一个“true循环”,即在true时运行的循环,因此类似于
while(true){…}
。。。。它将永远运行,永远。