Unity 코루틴: 완료 후 값 반환
Unity에서 코루틴은 일반적으로 비동기 작업에 사용됩니다. 그러나 완료 후 값을 반환하려고 하면 문제가 발생합니다. 다음 시나리오를 고려하십시오.
문제: 스크립트는 코루틴을 사용하여 POST 요청을 시작하지만 요청이 완료되면 값을 반환해야 합니다. 그러나 코루틴이 완료되기 전에 "return" 문이 실행되어 잘못된 값이 발생합니다.
해결 방법: Action Delegate를 통한 콜백
1. 작업 대리인 만들기:
public delegate void RequestStatusCallback(int status);
2. 콜백으로 요청 시작:
스크립트의 Start() 또는 Update() 메서드에서 코루틴을 시작하고 콜백을 제공합니다.
WWW www = new WWW("http://google.com"); StartCoroutine(WaitForRequest(www, (status) => { print(status.ToString()); }));
3. WaitForSeconds 코루틴 구현:
private IEnumerator WaitForRequest(WWW www, RequestStatusCallback callback) { int tempInt = 0; yield return www; if (string.IsNullOrEmpty(www.error)) { if(!string.IsNullOrEmpty(www.text)) { tempInt = 3; } else { tempInt=2; } } else { print(www.error); tempInt=1; } callback(tempInt); }
4. 콜백을 사용하여 값 업데이트:
콜백을 사용하면 상태 값에 대한 액세스를 제공하여 변수를 업데이트하거나 요청 결과에 따라 다른 후속 작업을 수행할 수 있습니다.
위 내용은 Unity 코루틴이 완료된 후 어떻게 값을 반환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!