如何使用 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
}
}
}
我想在场景激活 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
}
}
}