Jump to content
paio458

ANSWERED Problemas Sprites - Luces 2d- Shaders

Recommended Posts

Hola, estoy haciendo un juego "2.5D" , donde personajes y assets son sprites con una rotacion de 45° en el eje x, para poder solucionar el orden en que se muestran los sprites dependiendo su posicion en z encontre un shader para solucionarlo en https://notslot.com/blog/2019/11/_25d-game-in-unity-part-1/

Lo malo que de shaders no se nada y este funciono para su cometido, pero a la hora de querer poner luces en la escena estas no iluminan los sprites, ni luces 3d ni luces 2d.

Vi muchos tutoriales como utilizar shaders para poder iluminar sprites y crear materiales difusos para que la luz 3d les afecte, pero al hacerlo debo no usar el shader que corrige el render en orden del eje Z.

Espero haber podido explicar bien el problema y poder tener alguna ayuda para solventarlo.

Gracias y Saludos

02.jpg

03.jpg

01.jpg

Share this post


Link to post
Share on other sites

Auto-Solucion

Les comento que despues de tanto buscar una solucion con el shader, preferi no utilizarlo ya que no entiendo mucho  o nada de shaders y deje los sprites con un material difuso como muchos tutoriales muestran para iluminarlos.

Y la solucion para que estos aparezcan en el orden correcto en el eje z lo implemente via script, chequeando su posicion en z y modificando el OrderLayer del sprite.

public class SpriteOrderZ : MonoBehaviour
{
    public SpriteRenderer miSprite;

    void Start()
    {
        miSprite = GetComponent<SpriteRenderer>();
    }

 void Update()
    {
        miSprite.sortingOrder = Mathf.RoundToInt(transform.position.z * -10f);
    }
}

 

Share this post


Link to post
Share on other sites

hola

supongo que ese script lo usas solo para el player o para enemigos u objetos que se muevan...

para el resto de objetos que no se muevan deverias hacerlo todo en "void Start" porque no hace falta que estes comprobando cada frame la posicion porque no se mueven

  • Thanks 1

Share this post


Link to post
Share on other sites

Gracias, en un principio lo coloque en todos, pero a elementos estaticos solo con una llamada esta correcto. Ahora tengo un codigo para estaticos y uno en el update para elementos que tienen movimiento.

Muchas gracias!

Share this post


Link to post
Share on other sites

×
×
  • Create New...