Скачать 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();
}