Скачать png перед загрузкой сцены

Я разрабатываю приложение Web Player. Мне нужно скачать изображение *.png и использовать это изображение в сцене. Скачать код:

public Material mat;
string fullFilename;
Texture2D texTmp;
Sprite spr;

void Awake()
{
    fullFilename = "http://585649.workwork.web.hostingtest.net/Images/Logo.png";
    StartCoroutine(Download());
    texTmp = new Texture2D(50, 50);
    spr = Sprite.Create(texTmp, new Rect(0, 0, texTmp.width, texTmp.height), Vector2.zero, 100);
    spr.texture.wrapMode = TextureWrapMode.Clamp;
    mat.mainTexture = spr.texture;
}

IEnumerator Download()
{
    WWW www = new WWW(fullFilename);
    yield return www;
    www.LoadImageIntoTexture(texTmp);
}

Это нормально работает, но после загрузки загруженной сцены появляется изображение через некоторое время. Как я могу это исправить? Извините за мой английский:) Спасибо!

1 ответ

Решение

Это естественно. Потому что вы загружаете картинку из интернета, и есть некоторые задержки. Таким образом, вы добавляете экран загрузки или ждете всю сцену, пока картинка не будет загружена вами. Но я думаю, что это не очень хорошее решение, потому что вы загружаете только картинку. Может быть, отключение других кнопок / интерактивных элементов перед началом загрузки, а затем включение их после завершения загрузки - это хорошее решение.

Например:

void Awake()
{
    fullFilename = "http://585649.workwork.web.hostingtest.net/Images/Logo.png";
    disableButtons();
    StartCoroutine(Download());
    texTmp = new Texture2D(50, 50);
    spr = Sprite.Create(texTmp, new Rect(0, 0, texTmp.width, texTmp.height), Vector2.zero, 100);
    spr.texture.wrapMode = TextureWrapMode.Clamp;
    mat.mainTexture = spr.texture;
}

IEnumerator Download()
{
    WWW www = new WWW(fullFilename);
    yield return www;
    www.LoadImageIntoTexture(texTmp);
    enableButtons();
}
Другие вопросы по тегам