Skip to content

Comment charger une image via une URL dans Unity ?

Posted on:5 mai 2023 at 02:00

J’ai récemment travaillé dans le développement d’un plugin Unity. Où il était nécessaire de charger des images depuis une URL d’un serveur web. La solution est finalement plutôt simple et a l’avantage d’être asynchrone (cela n’impacte quasiment pas les performances).

Voilà donc le code qui en résulte:

public async Task<Texture2D> DownloadImage(string url, Action<Texture2D> callback)
{
    UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
    www.SendWebRequest();

    while (!www.isDone)
    {
        await Task.Yield();
    }

    if (www.result != UnityWebRequest.Result.Success)
    {
        Debug.Log(www.error);
        return null;
    }
    else
    {
        Texture2D texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
        callback(texture);
        return texture;
    }
}

Et voilà !