Unity исключения для загрузки текстуры с WWW - PullRequest
0 голосов
/ 31 мая 2019

Мне нужно скачать изображение с сервера и показать в спрайте. Весь пример я могу найти рекомендуемый следующий код:

WWW www = new WWW(requestUrl);
yield return www;
onTextureLoaded(www.texture,id);

Но я не могу найти способ обработки исключений в этом случае. Должен ли я добавить попробовать поймать? Или есть ли способ проверить, был ли запрос успешным?

Ответы [ 2 ]

0 голосов
/ 31 мая 2019
System.Collections.IEnumerator GetRemoteTexture ( string url )
{
    using( var www = UnityEngine.Networking.UnityWebRequestTexture.GetTexture( url ) )
    {
        //begin request:
        var asyncOp = www.SendWebRequest();

        //await until it's done:
        var hz30 = new WaitForSecondsRealtime( 1f/30f );
        while( asyncOp.isDone==false )
        {
            yield return hz30;
        }

        //read results:
        if( www.isNetworkError || www.isHttpError )
        {
            //log error:
            #if DEBUG
            Debug.Log( $"{ www.error }, URL:{ www.url }" );
            #endif
        }
        else
        {
            //success:
            Texture2D texture = UnityEngine.Networking.DownloadHandlerTexture.GetContent( www );

            //> DO SOMETHING WITH THIS TEXTURE HERE <

        }
    }
}

PRO версия: https://stackoverflow.com/a/53770838/2528943

0 голосов
/ 31 мая 2019

Как и JeanLuc, вы должны проверить www.error. Но вы должны избегать WWW класса, так как он устарел: https://docs.unity3d.com/ScriptReference/WWW.html

вместо этого следует использовать UnityWebRequest

https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.Get.html

В этой ссылке вы также найдете пример того, как проверить ошибку с UnityWebRequest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...