퐁듀블로그

블로그 이미지
by 초코맛퐁듀
  • Total hit
  • Today hit
  • Yesterday hit

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
AND

ARTICLE CATEGORY

이것저것 (6)
C# (0)
Unity3D (4)
리뷰 (1)

RECENT ARTICLE

RECENT COMMENT

CALENDAR

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

ARCHIVE

LINK