> 백엔드 개발 > C++ > Unity 코루틴이 완료된 후 어떻게 값을 반환할 수 있나요?

Unity 코루틴이 완료된 후 어떻게 값을 반환할 수 있나요?

Patricia Arquette
풀어 주다: 2025-01-03 14:09:43
원래의
786명이 탐색했습니다.

How Can I Return Values from Unity Coroutines After They Complete?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿