Notice
Recent Posts
Recent Comments
Link
«   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
Archives
Today
Total
관리 메뉴

codingfarm

코루틴 본문

Unity5/기타

코루틴

scarecrow1992 2020. 6. 6. 20:51

유니티에서 코루틴은 일정시간을 두고 작업을 해야하는 작업에 주로 쓰입니다.

update가 매프레임마다 호출, fixed update가 초당정해진 시간마다 호출되는것과 상반됩니다.

 

가령 게임내에서 10초를 카운트 해야 할 일이 생긴다면

update 함수를 쓸 경우엔  update내에서 변수에 Time.deltaTime을 계속 더하면서 if문으로 10초가 넘었는지를 탐색해야 하지만, 코루틴을 쓸경우 

 

IEnumerator TimerFunc(){

   $\vdots$

   yield return new WaitForSeconds(10);

   $\vdots$

}

 

yield return 위의 코드가 다 실행되고 10초 후에 아래 코드가 실행됩니다.

가령 특정오브젝트를 0.05초에 한번씩 이동시켜줄 경우

1
2
3
4
5
6
7
8
9
10
void Start(){
    StartCoroutine("Move")
}
 
IEnumerator Move(){
    while(true){
        transform.translate(new Vector3(0.5f,0,0));
        yield return new WaitForSeconds(0.05f);
    }
}
cs

 

코루틴함수를 중간에 완전 종료 시키고 싶다면

yield break;

를 삽입하면 된다.

'Unity5 > 기타' 카테고리의 다른 글

4. 2D 플랫포머 - 오르막길  (0) 2020.07.29
3. 2d 플랫포머 - 캐릭터 이동  (0) 2020.07.26
mechanim(2d)  (0) 2020.06.05
Ray와 Raycast충돌  (0) 2020.06.05
오브젝트 이동하기  (0) 2020.06.05
Comments