延迟后统一重生
unity respawn after delay
我试图在 "x" 时间内重生一个对象,但是当我使用 yield 和 startcourutine 时,它会导致我的代码出现很多错误。而不是破坏我想隐藏对象并在延迟后重生它时再次启用它。如果我有数组,这怎么可能?
要在同一位置直接重生,您可以这样做:
public class CrateCrash : MonoBehaviour
{
...
public void InitRespawn(GameObject toRespawn)
{
StartCoroutine(RespawnObject(toRespawn, 5.0f));
}
private IEnumerator RespawnObject(GameObject toRespawn, float delay)
{
yield return new WaitForSeconds(delay);
toRespawn.SetActive(true);
}
}
另一个class:
using UnityEngine;
using System.Collections;
public class Crate : MonoBehaviour
{
CrateCrash manager;
public void OnMouseDown()
{
manager.InitRespawn(gameObject);
gameObject.SetActive(true);
}
public void SetManagerReference(CrateCrash managerRef)
{
manager = managerRef;
}
}
我试图在 "x" 时间内重生一个对象,但是当我使用 yield 和 startcourutine 时,它会导致我的代码出现很多错误。而不是破坏我想隐藏对象并在延迟后重生它时再次启用它。如果我有数组,这怎么可能?
要在同一位置直接重生,您可以这样做:
public class CrateCrash : MonoBehaviour
{
...
public void InitRespawn(GameObject toRespawn)
{
StartCoroutine(RespawnObject(toRespawn, 5.0f));
}
private IEnumerator RespawnObject(GameObject toRespawn, float delay)
{
yield return new WaitForSeconds(delay);
toRespawn.SetActive(true);
}
}
另一个class:
using UnityEngine;
using System.Collections;
public class Crate : MonoBehaviour
{
CrateCrash manager;
public void OnMouseDown()
{
manager.InitRespawn(gameObject);
gameObject.SetActive(true);
}
public void SetManagerReference(CrateCrash managerRef)
{
manager = managerRef;
}
}