延迟后统一重生

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;
    }    
}