如何使用 c# 在 Unity 中创建一个在 x 时间内生成的游戏对象,它位于场景中

How to create a gameobject in Unity with c# that spawns in x time and it is inside a Scene

我想在场景激活 9 秒后在 Unity 中生成一个游戏对象。我使用 Time.timeSinceStartup 但它开始计算秒数,因为我开始了整个游戏。有人知道从场景开始开始计算时间的脚本是什么吗?

大约有 100 种方法可以实现你想做的事情(主要是协程),但我假设你刚刚开始,因此在我看来最简单的方法就是这个。

将此脚本附加到场景中的空游戏对象。 (注意:此脚本会销毁自身,但不会销毁游戏对象。如果要销毁游戏对象,请将“this”改为“gameobejct”。)

using UnityEngine;

public class SpawnDelay : MonoBehaviour
{

    [SerializeField] GameObject Prefab;
    [SerializeField] float DelayInSeconds;

    float timer;

    void Update()
    {
        timer += Time.deltaTime;
        if(timer >= DelayInSeconds)
        {
            Instantiate(Prefab);
            Destroy(this);          //Destroys itself to save memory
        }
    }
}