유니티 특정 함수 재귀 호출 #InvokeRepeating

InvokeRepeating란?

InvokeRepeating 함수는 MonoBehaviour 클래스의 메서드로, 지정된 시간 간격으로 반복해서 메서드를 호출합니다.

일반적으로 주기적으로 실행되는 로직을 구현할 때 사용됩니다.

 

InvokeRepeating은 총 3개의 매개변수를 받습니다!

  • methodName: 호출할 메서드 이름 (string)
  • time: 첫 번째 호출 이전의 대기 시간 (float)
  • repeatRate: 반복 간격 (float)

InvokeRepeating("UpdatePosition", 1f, 0.5f)는 "UpdatePosition" 메서드를 1초 후에 처음 호출하고, 그 후 0.5초마다 메서드를 호출합니다.

 

주의

해당 객체가 활성화되어 있어야 작동하며, 해당 객체가 비활성화되면 즉시 중지됩니다.

게임 오브젝트가 파괴될 때도 중지됩니다.

함수를 중지하려면 CancelInvoke("methodName") 메서드를 호출하면 됩니다.

 

또한, 일부 호출이 지연될 경우, 이후 모든 호출도 함께 지연됩니다.

이로 인해 호출 간격이 일정하지 않을 수 있습니다. 이를 방지하기 위해서는 Time.deltaTime 값을 사용하여 불규칙한 호출 간격을 보정할 수 있습니다!!