Noticias

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

Temas recientes

Cambiar sprite indicando la ruta del recurso

Iniciado por Noehg91, Febrero 07, 2019, 05:08:36 PM

Tema anterior - Siguiente tema
Hola a todos,
 
llevo unos días con un problema que me está volviendo loca. Quiero hacer algo que, a priori, creía que iba a ser sencillo, pero se ve que no... 
 
Tengo una clase Cartas con tres atributos: nombre, tipo y sprite. Por otra parte, tengo un GameObject en la escena que consta de una imagen y un botón, al que le he añadido como componente un script para que, al pulsar el botón, se vea el sprite de la siguiente carta.
 
Las cartas no son GameObjects, no es una clase Mono Behaviour, porque se crean dinámicamente en otro momento del juego. 
 
El script es este:
 

public class ChangeCards : MonoBehaviour
{
    public Image image;
    private Cards[] cards;
     private int index = 0;
    void Start() {
        Cards.SetCards();
        cards = Cards.GetCards();
        image.sprite = cards[index].sprite;
    }
    public void Next() {
         index++;
        if (index == cards.Length) {
            index = 0;
        }
        image.sprite = cards[index].sprite;
    }
}

 
Por otra parte, en la clase Cards, el sprite está definido así:
 

card = new Cards("Biblioteca", Type.Room, Resources.Load<Sprite>("Assets/Images/Cards/Biblioteca.png"));
 
public Cards (string name, Type type, Sprite sprite) {
this.cardName = name;
this.type = type;
this.sprite = sprite;
}

 
He probado a pasar la ruta del Sprite de varias maneras, pero nunca consigo que se muestre... (no se ejecuta correctamente ni en Start() ni en Next()). He de decir que el nombre y el tipo sí que los obtengo correctamente, ya lo he probado en Debug.
 
Espero haberme explicado correctamente... ¿Alguien puede ayudarme?
 
¡Gracias!

De la doc:
 
https://docs.unity3d.com/ScriptReference/Resources.Load.html
 
Dice:
 
Loads an asset stored at path in a folder called Resources.
 
Es decir, los recursos que cargas usando por ejemplo el camino "Cartas/MiCarta" debés tenerlo realmente en "Assets/ .... / Resources/Cartas/ MiCarta" , los "..." están para expresar que la carpeta Resources puede estar en cualquier lado dentro de Assets.

Madre mía... No te imaginas la de vueltas que he dado... ¡Mil gracias, leeré con más cuidado la próxima vez!

Etiquetas: