Na primeira vez que tentei usar Unity eu odiei o Raycast por conta dessas falhas, e tentei utilizar o Boxcast, mas me faltava conhecimento. Agora já consigo utilizar e digo com firmeza que é uma forma excelente para checar o chão. Vi um comentário abaixo falando sobre matrizes de Raycast, algo que irei testar em breve, parece ter possibilidades muito interessantes para novas animações. No mais, parabéns pelo vídeo e pelo canal, Sharpax!
Não conhecia esse, muito bom. Um debug para quem quiser ter uma informação visual se esta no chão private void OnDrawGizmosSelected() { Gizmos.color = Color.red; if (IsGrounded()) { Gizmos.color = Color.green; } var posY = boxCollider.bounds.center.y - (boxCollider.bounds.size.y / 2); var posX = boxCollider.bounds.center.x; var pos = new Vector2(posX, posY); Gizmos.DrawWireSphere(pos, boxCollider.bounds.size.x/2); }
muito interessante este método, eu costumo utilizar um objeto externo ao personagem para detectar o chão, que costuma dar certo também, porém este método parece bem promissor
Ai mano valeu pela ajuda. Eu usava uma engine chamada Stencyl aí eu criava uma váriavel chamada "no ar ou no chão" nisso eu colocava se a velocida Y fosse diferente de zero a vária seria um se a velo cidade y fosse 0 a váriável seria 0 não sei se unity isso da certo, mas seri legal tentar
Estava com bug no meu personagem e esse método da cápsula e o box funcionou, eu andava com ele normalmente, aí do nada ele batia em coisa invisível kkkkk só que agora ficou muito clean
Oi, vc poderia min ajudar? estou começando agr e estou com um problema que não sei resolver. Meu personagem quando bate em algum lugar com boxCollider2D, tipo pedras, paredes etc... ele começa a tremer sabe, funciona tudo normal mas ele fica querendo entrar na parede mas não consegue poderia min ajudar?
Welll.. já mano! A menina do canal do @evolver3d me ajudou no trabalho da faculdade! Ela me ajudou com o BoxCast! Depois optei em usar uma matriz de RayCast, a qual ela me ajudou tb! Muito melhor! Já que queria fazer o personagem agarrar, ficar em desequilibro e pular. recomendo o canal tb, fera.. man!
@andre ferreira Então, na época a professora Flávia me ajudou a usar os raycasts, é dificil explicar por aqui. Mas vou tentar: Primeiro, nós criamos umas classes para gerenciar os RayCasts e colocar as propriedades dentro da classe. A seguir, isso me permitia criar uma Lista dessa classe com os rays. Assim coloquei os rays para identificar solo, parede e etc. Para o solo, eu coloquei três Rays, com isso conseguia identificar se erá "quinas" bastava 1 ou dois ficar sem colidir, ai sabia que podia aplicar a animação de desiquilibrio. É mais ou menos isso! Se vc assistir os vídeos atuais dela, verá que ela só usa Ray, acho que ela não fez nenhum explicando com essa complexidade! Valeu man.
@andre ferreira Exato man! Mas oq eu vi no perfil dela, ela é mestre em tecnologia! Achei que ela não iria responder, mas ela respondeu! E fez um vídeo para mim. Claro que ela tb não tem tempo, respeito nessa parte, mas uma gentileza, então tb me sinto na obrigação de compartilhar! Claro que to no aprendizado ainda..
sou iniciante e tentei utilizar este detector, mas após fazer tudo, quando eu aperto a tecla de espaço para pular ele aparece com o seguinte erro: "NullReferenceException: Object reference not set to an instance of an object PlayerMovement.IsGrounded () (at Assets/assets/scripts/PlayerMovement.cs:68)"
Eu usava o de linhas e tinha alguns bugs. Não sabia da existencia desse detector de colisão, obrigado por compartilhar esse conhecimento.
Na primeira vez que tentei usar Unity eu odiei o Raycast por conta dessas falhas, e tentei utilizar o Boxcast, mas me faltava conhecimento. Agora já consigo utilizar e digo com firmeza que é uma forma excelente para checar o chão. Vi um comentário abaixo falando sobre matrizes de Raycast, algo que irei testar em breve, parece ter possibilidades muito interessantes para novas animações. No mais, parabéns pelo vídeo e pelo canal, Sharpax!
Não conhecia esse, muito bom. Um debug para quem quiser ter uma informação visual se esta no chão
private void OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
if (IsGrounded())
{
Gizmos.color = Color.green;
}
var posY = boxCollider.bounds.center.y - (boxCollider.bounds.size.y / 2);
var posX = boxCollider.bounds.center.x;
var pos = new Vector2(posX, posY);
Gizmos.DrawWireSphere(pos, boxCollider.bounds.size.x/2);
}
Esse vídeo me ajudou muito, estava mesmo precisando fazer um detector de chão aprimorado.
muito interessante este método, eu costumo utilizar um objeto externo ao personagem para detectar o chão, que costuma dar certo também, porém este método parece bem promissor
Vamos que vamos 🙃
Ai mano valeu pela ajuda. Eu usava uma engine chamada Stencyl aí eu criava uma váriavel chamada "no ar ou no chão" nisso eu colocava se a velocida Y fosse diferente de zero a vária seria um se a velo cidade y fosse 0 a váriável seria 0 não sei se unity isso da certo, mas seri legal tentar
Aprendi primeiro com o Physics2D.OverlapCircle, depois com Physics2D.Raycast, depois com OnCollisionEnter2D + as layers e agora o seu. haha
Estava com bug no meu personagem e esse método da cápsula e o box funcionou, eu andava com ele normalmente, aí do nada ele batia em coisa invisível kkkkk só que agora ficou muito clean
Oi, vc poderia min ajudar? estou começando agr e estou com um problema que não sei resolver.
Meu personagem quando bate em algum lugar com boxCollider2D, tipo pedras, paredes etc...
ele começa a tremer sabe, funciona tudo normal mas ele fica querendo entrar na parede mas não consegue poderia min ajudar?
Wu uso a godot 4.2 e bem simples
Welll.. já mano! A menina do canal do @evolver3d me ajudou no trabalho da faculdade! Ela me ajudou com o BoxCast! Depois optei em usar uma matriz de RayCast, a qual ela me ajudou tb! Muito melhor! Já que queria fazer o personagem agarrar, ficar em desequilibro e pular. recomendo o canal tb, fera.. man!
@andre ferreira Então, na época a professora Flávia me ajudou a usar os raycasts, é dificil explicar por aqui. Mas vou tentar: Primeiro, nós criamos umas classes para gerenciar os RayCasts e colocar as propriedades dentro da classe. A seguir, isso me permitia criar uma Lista dessa classe com os rays. Assim coloquei os rays para identificar solo, parede e etc. Para o solo, eu coloquei três Rays, com isso conseguia identificar se erá "quinas" bastava 1 ou dois ficar sem colidir, ai sabia que podia aplicar a animação de desiquilibrio. É mais ou menos isso! Se vc assistir os vídeos atuais dela, verá que ela só usa Ray, acho que ela não fez nenhum explicando com essa complexidade! Valeu man.
@andre ferreira Exato man! Mas oq eu vi no perfil dela, ela é mestre em tecnologia! Achei que ela não iria responder, mas ela respondeu! E fez um vídeo para mim. Claro que ela tb não tem tempo, respeito nessa parte, mas uma gentileza, então tb me sinto na obrigação de compartilhar! Claro que to no aprendizado ainda..
Opa cheguei o mais cedo que deu
Efetivo
ralei que nem um carneiro pra resolver isso kjsfjkshdf mandaram eu usar Raycast mas ja tinha resolvido ai nem tentei
Primeiro
sou iniciante e tentei utilizar este detector, mas após fazer tudo, quando eu aperto a tecla de espaço para pular ele aparece com o seguinte erro:
"NullReferenceException: Object reference not set to an instance of an object
PlayerMovement.IsGrounded () (at Assets/assets/scripts/PlayerMovement.cs:68)"