특정시간 뒤에 함수 호출하도록 설정하기 (WaitForSeconds)
WaitForSeconds라는 메소드가 있는데 C#에서 쓰러면 조금 까다롭게 형식에 맞춰서 작성해줘야 한다.
위 예제와 같이 Awake라는 메소드에서 시간을 두번 출력할때 첫번째 시간을 출력 한 뒤 5초뒤에 두번째 시간을 출력하고자 하는경우 또는 일정시간마다 반복 재귀호출 되는 메소드를 작성하고 싶을때에
'IEnumerator' 라는 인터페이스를 사용하도록 해당 메소드 앞에 적어줘야 한다.
{
위와 같이 delayTime이라는 메소드를 적어주면 메소드가 호출되면 1를 기다렸다가 1초뒤에 Debug 문장이 실행된다.
IEnumerator 인터페이스를 사용하는 메소드를 실행하기 위해서는
특정 호출 메소드를 이용해야 하는데
다른 메서드들 처럼 그냥 메서드명() 으로 호출하면 실행되지 않고 위와 같이 StartCoroutine(메서드명) 으로 호출해야 한다.
일정시간 간격으로 계속 반복되어 실행되는 메서드를 만들러면
StartCoroutine(countTime, 1);
}
IEnumerator countTime(float delayTime)
{
Debug.Log("Time = " + Time.time);
yield return new WaitForSeconds(delayTime);
StartCoroutine( countTime, 1 );
}
위와 같이 적어주면 countTime이 waitForSeconds 명령에 의해 일정시간 만큼 딜레이를 한 뒤 자기자신을 재 호출하게되어
1초 간격으로 계속 반복 호출하도록 할 수 있다.
출처 : http://clack.tistory.com/50
'Unity3D > Script' 카테고리의 다른 글
폰트의 픽셀정보로 문자열을 Mesh들로 생성하여 보여주기 (0) | 2012.11.24 |
---|---|
Interpolate (0) | 2012.11.22 |
AnimationEvent 추가 방법 (0) | 2012.11.21 |
WaitForSeconds() (0) | 2012.11.21 |
Attributes 설명 모음 (0) | 2012.11.18 |