Importante dúvida sobre colisão Top-Down

Neste vídeo:
How to use and adjust 2D collider in Unity

O rapaz, que está dando o tutorial, explica como ajustar a colisão no unity,…
Porém, no final do vídeo aos 12 minutos, ele tenta caminhar por de trás da estrutura e não obtém sucesso.

Para resolver esse problema, o qual ele não resolveu em nenhum outro vídeo, eu teria que desenvolver um Gatilho de quando eu subo e desço escada, para mudar a colisão da estrutura?

Nesse tipo de questão, de colisões 2D, Unity não é muito bom,…

Poderia me ajudar a solucionar esse problema?

2 curtidas

Esse problema com sprites é comum na Unity, e existe várias formas de resolver, dependem muito de cada projeto. Vou te dar umas sugestões aqui:

1. Camadas de Classificação (Sorting Layers)

Crie camadas no Sorting Layer pra organizar os objetos (tipo “Plano de Fundo”, “Objetos”, “Jogador”) e atribua cada sprite à camada certa no Sprite Renderer.

2. Ordem na Camada (Order in Layer)

Dentro da mesma camada, use o Order in Layer: quanto maior o valor, mais na frente o sprite aparece. Isso ajuda a controlar o que fica na frente ou atrás dentro da mesma camada. Você pode criar um script para detectar colisão trigger, e quando o jogador subir em uma área elevada, você aumentar eu Order in Layer.

3. Classificação por Transparência

Essa é uma configuração bem interessante, onde você pode ajustar automaticamente a renderização com base na posição Y. Ou seja você pode fazer a unity renderizar objetos com pos Y acima de outros objetos com pos Y inferior.

Para você ver isso, você pode ir em Edit > Project Settings > Graphics > Clicar no seu Scriptable Render Pipeline, para abrir no projeto. Depois você clicar no arquivo ao lado (Renderer2D) e mude o Transparency Sort Mode pra Custom Axis. Coloque o Transparency Sort Axis como (0, 1, 0). Assim, a Unity usa a posição Y pra decidir o que aparece na frente ou atrás.

Dá uma olhada nesse tutorial também, pode ser que te ajude: https://www.youtube.com/watch?v=9vBbg1-Bxcw

3 curtidas