
1. Yield
- 현재 위치에서 한 프레임을 대기
(선언 위치 기준으로 이하 모듈들을 이번 프레임에서 모두 건너뛰며, 다음 프레임에서는 상위 모듈을 건너 뛰고 이하 모듈을 수행함)
예) private var state = 0;
function Update() {
if(state == 0) {
Debug.Log("Step 0");
state = 1;
return;
}
if(state == 1) {
Debug.Log("Step 1");
state = 0;
return;
}
}
# 조건문을 사용하지 않고 이벤트의 실행 순서를 제어함
function Start() {
while(true) {
Debug.Log("Step 0");
yield;
Debud.Log("Step 1");
yield;
}
}
-> yield에서 WaitForSeconds, WaitForFixedUpdate, Coroutine, StartCoroutine
같은 특별한 값을 전달해서 특정 이벤트가 처리될 때까지 Update함수의 실행을
지연시킬 수 있음
-> Update나 FixedUpdate에서는 yield 사용이 불가능, 그러나 yield를 사용하는
특정 함수를 시작하기 위해 StartCoroutine을 사용할 수 있음
2. WaitForSeconds
- 일정시간 동안 코루틴의 실행을 정지
- WaitForSeconds는 코루틴에서 yield와 함께 사용되야 함
예) function Start() {
// 0 출력
Debug.Log(Time.time);
// 5초 딜레이
yield WaitForSeconds(5);
// 5 출력
Debug.Log(Time.time);
}
# 코루틴 스택을 만들거나 코루틴 흐름을 결정할 수 있음
# Do 함수를 즉각적으로 호출한 후에 코드 실행이 계속 됨
function Start() {
Do();
Debug.Log("This is printed immediately");
}
function Do() {
Debug.Log("Do now");
yield WaitForSecionds(5);
Debug.Log(Do 5 Seconds Later");
}
* 결과는
(1) Do now
(2) This print Im...
(3) Do 5 Seconds Later
[출처] 유니티 주요함수 #2 | 작성자 만듀
'Unity3D' 카테고리의 다른 글
Unity 주요함수 #4 (0) | 2014.01.16 |
---|---|
Unity 주요함수 #3 (0) | 2014.01.16 |
Unity 주요함수 #1 (0) | 2014.01.16 |