Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Imagen fondo en canvas

Iniciado por fernando, Abril 10, 2017, 05:02:38 PM

Tema anterior - Siguiente tema
Abril 10, 2017, 05:02:38 PM Ultima modificación: Abril 11, 2017, 03:53:57 AM por pioj
Buenas.
 
Tengo un canvas al que he añadido un raw image. Como puedo hacer que desde código le asigne una imagen de fondo?
 
Tengo este código que lee unas carpetas y busca donde esta la imagen.
 

private void LoadBgImage() {
        string RuteBackground = Application.dataPath + "/StreamingAssets/ImgBackground";
        string[] files = Directory.GetFiles(RuteBackground);
        string background = files.FirstOrDefault(s => s.EndsWith(".jpg") || s.EndsWith(".png"));
       
    }

 
en background se me guarda la ruta de la imagen,como la asigno al raw image del canvas?

si o si queres agregar un raw image
 
o puede ser un image solo??
 
 

si ,tiene que ser raw image
 
 

buen en fin, yo comunmente uso image por eso digo, en resumen, necesitarias usar la funcion WWW que se encarga de cargar el archivo desde un directorio y despues lo asignas a donde lo queres usar, a ver dame un segundo te armo unas lineas 
 
 
 

WWW www = new WWW ("file://" + PortadaSeleccionada);
GameObject.Find ("Canvas").GetComponent<Image> ().sprite=Sprite.Create(www.texture,new Rect(0f,0f,www.texture.width,www.texture.height),new Vector2(0.5f,0.5f),100f);

 
 
 
yo uso el GameObject.Find para buscar el objeto por su nombre pero si lo tenes almacenado en una variable, pones la variable seria algo asi....


 
 

VARIABLE.GetComponent<Image> ().sprite=Sprite.Create(www.texture,new Rect(0f,0f,www.texture.width,www.texture.height),new Vector2(0.5f,0.5f),100f);

 
 

NullReferenceException: Object reference not set to an instance of an object
 
 
 
Me sale ese fallo con ese codigo

(www.texture) es donde esta almacenado la textura o la imagen seria, y despues como image usa sprite y no textura, tenes que comvertir a www.texture en un sprite y por eso ese pedazo de codigo un poco mas largo... avisame si te sirvio.

¿Nadie más ve un patrón que se repite constantemente en todos los posts que hace @fernando ? 
 
Creo que lo mejor sería que primero siguieras bastantes tutoriales de uso básico de Unity, su GUI, y de C#...

@pioj Un poco si...
 
 
 
@fernando Te lías mucho. ¿No es mas sencillo guardar una lista de sprites vinculados desde el editor y asignarlos a la imagen del canvas en vez de ir buscando las cosas en los directorios?

Etiquetas: