Cambiar textura por script Unity solucionado
Buenos días, necesito poder cambiar la textura de la cara a los personajes, para qué parpadeen o hablen y como siempre No FUNCIONA.
En el manual y en los tutoriales que he podido ver lo hacen muy fácil:
- Creas una o tantas variables públicas de tipo Texture o Material como necesites para poder asignarle las texturas que vas a usar al objeto.
- Le añades (si no lo tiene ya) un componente Mesh Rendered al gameobject.
- Modificas por código la textura: gameObject.renderer.material = Textura1;.
A todos les funciona menos a mí.
Unity no me tira ningún error ni nada, simplemente no hace que cambie la textura, se queda como si nada.
¿Qué hay que hacer para qué te cambie las texturas?
Un saludo.
Cambiar textura por script Unity
Acabo de conseguirlo pero de la siguiente manera:
Renderer.material.mainTexture = Textura1;.
Pero para qué se aplique el cambio, el objeto debe de tener un Mesh Rendered y un Mesh Filter y el objeto del personaje no lo tiene, solo sus objetos hijos, por lo que si le aplicas el Mesh Filter al personaje, necesitas seleccionar el objeto que quieres que se renderice para cambiarle la textura y te lo renderiza como un objeto aparte, cada uno con una rotación y que va siguiendo al otro, osea qué se duplica. Es de locos.
A ver si atino.
Cambiar textura por script Unity solucionado
Buenas tardes, ya he solucionado el problema, y siempre lo soluciono al poco de preguntar en el foro, hasta qué no pregunto no lo consigo.
No hace falta añadir Mesh Rendered ni nada al objeto, lo que hay que hacer es buscar el modelado dentro del objeto padre, porque Unity te separa lo que es el Gameobject (que digamos que es el pivote del objeto), de lo que es el modelado en si (aunque tú los script los apliques al Gameobject) y en tu script debes crear una variable tipo Transform para asignale el modelado al que quieres cambiar la textura.
Una vez hecho esto desde el scrip modificas la textura del modelado del Gameobject por medio de su Mesh Rendered ya creado por defecto de la siguiente manera:
Prota.rendered.material.mainTexture = Textura1;.
Espero que se entienda. Un saludo.