【发布时间】:2017-10-30 06:22:44
【问题描述】:
我正在尝试在有游戏对象(比如说一个球)的地方制作一个统一游戏,并且在分配的时间量(5 秒)后游戏对象消失了,代码上有任何线索吗??
【问题讨论】:
标签: c# unityscript unity2d
我正在尝试在有游戏对象(比如说一个球)的地方制作一个统一游戏,并且在分配的时间量(5 秒)后游戏对象消失了,代码上有任何线索吗??
【问题讨论】:
标签: c# unityscript unity2d
实现这一点的最简单方法是使用 Unity 的内置 Destroy() 方法。
您可以将对象和计时器(以秒为单位)作为参数传递。
Destroy(gameObject, 5); // destroys the gameObject after 5 seconds elapsed
【讨论】:
好吧,你可以尝试使用 Invoke 方法,它会在一段时间后调用你指定的方法。
void Start()
{
Invoke("DestroyMyObject", 5);
}
void DestroyMyObject()
{
this.Destroy(this.gameObject);
}
如果你想重复调用某个方法,你可以使用 InvokeRepeating 这是整个文档:
【讨论】:
您可以为计时器使用协程。这比其他答案要复杂一些,但这是使用协程的好习惯。例如:
IEnumerator DestroyObject(GameObject object, int time) {
yield return new WaitForSeconds(time);
Destroy(object);
}
如果此脚本附加到控制器或其他任何非播放器:
public GameObject player;
//Wherever the player is supposed to be destroyed
{
DestroyObject(player, 5);
}
如果此脚本附加到播放器:
//Wherever the player is supposed to be destroyed
{
DestroyObject(this.gameObject, 5);
}
【讨论】: