延迟后统一重生

本文关键字:重生 延迟 | 更新日期: 2023-09-27 17:54:24

我试图在"x"时间重生一个对象,但是当我使用yield和startcourroutine时,它会在我的代码中导致很多错误和错误。而不是销毁,我想隐藏对象,并在延迟后重生时再次启用它。如果我有数组,这怎么可能呢?

延迟后统一重生

对于同一位置的直接重生,您可以这样做:

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

另一个类:

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