public class FireController : MonoBehaviour

{

    [SerializeField] [Range(6, 12)] int timer;

    float timeLeft;


    void OnEnable()

    {

        timeLeft = timer;

    }


    void Update()

    {

        timeLeft -= time.deltaTime;

        if (timer <= 0)

        {

            gameObject.SetActive(false);

        }

}

원래 이렇게 썼었는데 코루틴 써서 아래처럼 고쳤거든.

코루틴 첨 써보는데 저렇게 쓰는거 맞음? 작동은 제대로 하긴 하는데


public class FireController : MonoBehaviour

    {

    [SerializeField] [Range(6, 12)] int timer;


    void OnEnable()

    {

        StartCoroutine(TurnOffIn(timer));

    }


    IEnumerator TurnOffIn(float seconds)

    {

        yield return new WaitForSeconds(seconds);

        gameObject.SetActive(false);

    }

}


글고 유니티 문서 보니까 'UnityScript에서 코루틴을 시작하는 경우, 일반 함수와 동일하게 호출합니다' 라고 써있어서

StartCoroutine(TurnOffIn(timer)); 이거 안 쓰고 그냥 TurnOffIn(timer) 이렇게 쓰니까 작동 안 하던데 문서에는 왜 일반 함수랑 동일하게 호출한다고 써있는거임??