Je cherche à importer une texture depuis mon smartphone android, pour la mapper sur une sphère dans mon app Unity.
J'utilise la même méthode qui fonctionne parfaitement pour ma version PC (basée sur la classe WWW), mais sur Android, il m'est nécéssaire d'exécuter 2 fois la fonction pour que la texture soit correctement importée (j'obtient une texture blanche la première fois)
Voici mon implémentation:
Par appui sur un bouton, j'exécute la méthode suivante:
Code : Tout sélectionner
public void OpenFile()
{
if(!loadingData)
{
StartCoroutine(LoadFile());
}
}
Code : Tout sélectionner
IEnumerator LoadFile()
{
loadingData = true;
fileAdress = new WWW(url);
yield return fileAdress;
if (string.IsNullOrEmpty(fileAdress.error))
{
GameObject.Find("Canvas/Panel/Display").GetComponentInChildren<Text>().text = "no error";
}
else GameObject.Find("Canvas/Panel/Display").GetComponentInChildren<Text>().text = fileAdress.error; //Je n'obtiens jamais d'erreur ici
Texture2D tex = new Texture2D(1024,1024);
fileAdress.LoadImageIntoTexture(tex);
fileAdress = null;
sphere.GetComponent<Renderer>().material.mainTexture = tex;
sphere.GetComponent<Renderer>().material.shader = shaderSphere;
sphere.GetComponent<Renderer>().material.mainTextureScale = new Vector2(-1, 1);
loadingData = false;
}
Merci d'avance pour toute aide!