유니티(unity)
유니티(unity) 간단한 코루틴(Coroutine) 사용법
JakeGD
2017. 12. 11. 03:22
간단한 코루틴(Coroutine) 사용법
- IEnumerator
- 코루틴을 메소드 생성시 사용되는 반환 형식이며 yield return 구문을 포함하고 있어야 합니다.
- yiedl return 행은 실행을 끝내고 다음 프레임에서 실행을 다시 재개할 수 있는 시점입니다.
- 코루틴을 사용하려면 사용하고자 하는 구문에 StartCoroutine 함수를 이용합니다.
- StartCoroutine
- IEnumerator 형식으로 만들어진 코루틴 메소드를 실행하는 함수로 사용의 예로 특정키 입력시 또는 특정 값 도달시 시작되도록 할 수 있습니다.
사용 예시) 특정 물체를 일정 시간 마다 나타내기
void Start () { StartCoroutine(spawnWaves()); // spawnWaves라는 코루틴 함수 시작 startWait = 3.0f; EnemyCount = 10; spawnWait = 2.0f; } IEnumerator spawnWaves() { yield return new WaitForSeconds(startWait); // yield return 구문을 이용한 시간대기 함수(WaitForSeconds) // 이러면 3초후 시작 이라는 의미 while (true) { enemememy = EnemyStartPoint[UnityEngine.Random.Range(0, EnemyStartPoint.Length)]; Instantiate(Enemy, enemememy.transform.position, enemememy.transform.rotation); yield return new WaitForSeconds(spawnWait); // 2초마다 프리팹으로 만들어진 적들 소환 } } |
StartCoroutine 구문에서 spawnWaves() 로 호출해도 되지만 스트링 형식으로 "spawnWaves" 로 호출이 가능 합니다.
그리고 종료를 하고 싶다면 StopCoroutine을 이용해 StartCoroutin처럼 입력을 하면 해당 코루틴 함수가 멈춤니다.
또한가지 종료 방식이 있는데 StopAllCoroutines 함수로 실행되고 있는 모든 코루틴 함수를 종료 합니다.