호빵의 IT 개발소

[유니티/C#] Invoke 본문

C#, 유니티/유니티엔진 기초

[유니티/C#] Invoke

호빵Stack 2022. 6. 21. 19:57

Invoke

  • 유니티에서 자신이 설정한 시간만큼 함수 시작 시간을 지연시켜주는 기능
  • CPU를 최적화에 유용
  • 함수 실행 순서를 조절하기 유용
  • Invoke, coroutine 둘 다 시간을 지연시키는 기능을 가지지만 단순하게 함수의 시간을 지연시키기 위해서는 Invoke가 편리하게 사용됨

예)

public class Animal : MonoBehaviour
{
    public void Start()
    {
    	Invoke("Move", 5f);
    }
    
    public void Move()
    {
    	// 움직임 기능 구현
    }
}
  • Animal스크립트에서 Move() 함수를 통해 동물의 움직임을 구현하고 Start 함수에서 Invoke를 이용하여 Invoke("지연시킬 함수", 지연 시간);에 맞게 코드를 넣고 5초 뒤에 동작하도록 코드를 작성하였습니다.

 

InvokeRepeating

  • 처음 함수를 실행할 때, 일정 시간 지연 후 일정 시간마다 반복하게 해주는 기능
  • InvokeRepeating("지연 시킬 함수", 처음 지연 시간, 지연 후 반복할 시간);
public class Cow : MonoBehaviour
{
    public void Start()
    {
    	InvokeRepeating("Sound", 5f, 2f);
    }
    
    public void Sound()
    {
    	Debug.log("음머~");
    }
}
  • 소 울음소리 Sound 함수를 작성하고 Start함수를 통해 InvokeRepeating를 사용하게 되면 시작 후 처음은 5초 뒤에 "음머~" Log가 출력되게 되고 그 이후로 2초마다 "음머~" Log가 계속 출력되게 됩니다.

 

 

 

참조 및 출처 : https://chameleonstudio.tistory.com/37

Comments