1. 코루틴 이름
private void Start()
{
StartCoroutine(nameof(TestCoroutine)); // 코루틴 시작
StopCoroutine(nameof(TestCoroutine)); // 코루틴 정지
StartCoroutine(nameof(TestCoroutine)); // 코루틴 시작
}
private IEnumerator TestCoroutine()
{
// 함수
}
코루틴 이름을 직접 명시하는 방식이다
* 매개변수를 전달할 수 없다
* stop coroutine으로 코루틴을 멈춘 후 다시 시작시킬 경우 이전 진행 상황은 초기화된다
2. 함수
private void Start()
{
StartCoroutine(TestCoroutine()); // 코루틴 시작
StartCoroutine(TestCoroutine()); // 코루틴 시작(중복으로 실행)
}
private IEnumerator TestCoroutine()
{
// 함수
}
함수명을 명시하는 방식이다
* 여러번 start로 호출할 경우 함수가 여러 개 실행된다
* 매개변수를 전달할 수 있다
* 코루틴을 멈출 수 없다
3. IEnumerator
private void Start()
{
IEnumerator testIEnumerator = TestCoroutine();
StartCoroutine(testIEnumerator); // 코루틴 시작
StopCoroutine(testIEnumerator); // 코루틴 정지
StartCoroutine(testIEnumerator); // 코루틴 재시작(Resume)
}
private IEnumerator TestCoroutine()
{
// 함수
}
IEnumerator 변수를 이용하는 방법이다
* stop coroutine으로 코루틴을 정지시켰다가 다시 start coroutine을 사용하면 이전 진행 상황에서 이어서 진행시킨다
private void Start()
{
IEnumerator testIEnumerator = TestCoroutine();
StartCoroutine(testIEnumerator); // 코루틴 시작
StopCoroutine(testIEnumerator); // 코루틴 정지
testIEnumerator = TestCoroutine(); // 재할당
StartCoroutine(testIEnumerator); // 코루틴 시작
}
private IEnumerator TestCoroutine()
{
// 함수
}
위와 같이 다시 코루틴을 시작시키지 전에 재할당을 해 주면 처음부터 시작하게 된다
4. Coroutine
private void Start()
{
Coroutine testCo = StartCoroutine(TestCoroutine()); // 코루틴 시작
StopCoroutine(testCo); // 코루틴 정지
// StartCoroutine(testCo); : 불가능
}
private IEnumerator TestCoroutine()
{
// 함수
}
Coroutine 변수를 사용하는 방법이다
* stop coroutine으로 정지시킨 후 다시 실행할 수 없다(Start Coroutine의 인자로 Coroutine 변수 전달이 불가능)
'Programing > Unity(C#)' 카테고리의 다른 글
[C#] Press 입력 받기 (0) | 2024.04.02 |
---|---|
[Unity] 캐릭터의 움직임이 버벅거리는 문제(Rigidbody Interpolate) (0) | 2024.03.31 |
[C#] 반복문 내에서 List 요소 삭제 시 주의할 점 (0) | 2024.03.21 |
[Error] UnassignedReferenceException (0) | 2024.03.21 |
[C#] Action Invoke로 인자 전달하기 (0) | 2024.03.18 |