0
"x"시간에 개체를 respawn하려고하지만 yield 및 startcourutine을 사용하면 코드에서 많은 오류와 실수가 발생합니다. 대신 개체를 숨기고 지연 후에 respawn 할 때 다시 사용할 수 있도록하려면 파괴하는 대신. 배열이 있으면 어떻게 가능합니까? 이 작업을 수행 할 수있는 동일한 위치에 직접적인 부활에 대한지연 후 단일성 respawn
"x"시간에 개체를 respawn하려고하지만 yield 및 startcourutine을 사용하면 코드에서 많은 오류와 실수가 발생합니다. 대신 개체를 숨기고 지연 후에 respawn 할 때 다시 사용할 수 있도록하려면 파괴하는 대신. 배열이 있으면 어떻게 가능합니까? 이 작업을 수행 할 수있는 동일한 위치에 직접적인 부활에 대한지연 후 단일성 respawn
:
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;
}
}
군나르 야! 당신의 코드를 따라 해 주셔서 감사합니다하지만 내가 원하는대로 할 수 있습니다 그냥 개체를 사용할 수 없게하고 다시 사용할 수 있습니다. 내가 가지고있는 새로운 사용 가능한 위치와 새로운 타입을 할당하고 싶습니다. – David
@Alex 그래서 새로운 위치와 타입을 'RespawnObject()'코 루틴에 할당하십시오. – Iggy
아니요, (SetActive 대신) 코 루틴에서 호출하여 gameobject를 매개 변수로 전달할 수 있습니다. 그런 다음'Instantiate' 대신에'SetActive'를 호출합니다 (SetActive를 앞뒤로하면 위치를 설정해도 상관 없습니다). –