延迟后团结重生

时间:2016-07-04 10:23:28

标签: c# unity3d unity5 timedelay

我试图在" x"处重新生成一个物体。然而,当我使用yield和startcourutine时,它会导致我的代码中出现很多错误和错误。而不是破坏我想隐藏对象,并在延迟后重新生成它时再次启用它。如果我有阵列,这怎么可能?

1 个答案:

答案 0 :(得分:1)

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

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