[RESOLVIDO] Uma duvida sobre colliders 2d
5 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Uma duvida sobre colliders 2d
Olá, sou novo aqui e acabei de começar na criação de jogos.
Bom, eu comecei aqui botando um chão no qual usei um box collider ai eu fiz uma oponte curva e pra acompanhar o formato dela eu usei um polygon collider, porém quando o personagem anda por cima dela ele para de mostrar os sprites de animação e só desliza sobre a ponte. Alguem ai pode me ajudar com isso? (Puder me explixar que eu gostaria de entender o que fiz de errado)
segue um video da situação, obrigado à quem responder!
Bom, eu comecei aqui botando um chão no qual usei um box collider ai eu fiz uma oponte curva e pra acompanhar o formato dela eu usei um polygon collider, porém quando o personagem anda por cima dela ele para de mostrar os sprites de animação e só desliza sobre a ponte. Alguem ai pode me ajudar com isso? (Puder me explixar que eu gostaria de entender o que fiz de errado)
segue um video da situação, obrigado à quem responder!
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Colega, isso depende mais de como você fez sua animação..
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Putz eu acho que foi isso mesmo, eu fui olhar so agora no animator e quando ele passa pela ponte fica como se ele estivesse pulando, (um adendo, quando eu ativo esse negocio de root motion a animação fuinciona normalmente na ponte porém quando o personagem fica parado ele começa a subir eternamente e dece no mesmo momento que eu me movo)NKKF escreveu:Colega, isso depende mais de como você fez sua animação..
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
E continuo sem saber direito como arrumar kkjkmathhBR escreveu:Putz eu acho que foi isso mesmo, eu fui olhar so agora no animator e quando ele passa pela ponte fica como se ele estivesse pulando, (um adendo, quando eu ativo esse negocio de root motion a animação fuinciona normalmente na ponte porém quando o personagem fica parado ele começa a subir eternamente e dece no mesmo momento que eu me movo)NKKF escreveu:Colega, isso depende mais de como você fez sua animação..
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
eita srsr
a parte que confere se está pulando deve usar o boxCollider, talvez não funcione com o polygon collider.
Experimenta colocar também algum box collider na ponte do mesmo jeito que colocou no restante do piso pra testar.
a parte que confere se está pulando deve usar o boxCollider, talvez não funcione com o polygon collider.
Experimenta colocar também algum box collider na ponte do mesmo jeito que colocou no restante do piso pra testar.
Nalfam- MembroAvançado
- PONTOS : 2436
REPUTAÇÃO : 32
Áreas de atuação : Unity
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Testei e ele passa direto funcionando, me parece algum problema com "chão" não plano mesmo, vou tentar encher a ponte com circle colliders ou box colliders pra ficar no formato certo e ver o que da!Nalfam escreveu:eita srsr
a parte que confere se está pulando deve usar o boxCollider, talvez não funcione com o polygon collider.
Experimenta colocar também algum box collider na ponte do mesmo jeito que colocou no restante do piso pra testar.
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Pelo que testei, deixei o poygon collider reto e funcionou, o problema ta sendo um chão que não é plano ao que parece. Sabe me explicar como fazer um chão irregular sem que o personagem acuse como se estivesse pulando?Nalfam escreveu:eita srsr
a parte que confere se está pulando deve usar o boxCollider, talvez não funcione com o polygon collider.
Experimenta colocar também algum box collider na ponte do mesmo jeito que colocou no restante do piso pra testar.
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Poste seu script para análise.
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
- Código:
public float maxSpeed;
public float jumpForce = 10.0f;
public Transform groundChecker;
private bool grounded = true;
private bool jumping;
private Rigidbody2D rb2d;
private Animator anim;
private SpriteRenderer sprite;
void Awake ()
{
rb2d = GetComponent<Rigidbody2D> ();
sprite = GetComponent<SpriteRenderer> ();
anim = GetComponent<Animator> ();
gameObject.AddComponent<PolygonCollider2D>();
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
grounded = Physics2D.Linecast (transform.position, groundChecker.position, 1 << LayerMask.NameToLayer ("ground"));
if (Input.GetKeyDown(KeyCode.Space) && grounded)
{
jumping = true;
}
}
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "ground")
{
grounded = true;
}
}
void FixedUpdate(){
float move = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", Mathf.Abs(move));
rb2d.velocity = new Vector2(move * maxSpeed, rb2d.velocity.y);
if((move> 0f && sprite.flipX) || (move < 0f && !sprite.flipX))
{
Flip();
}
if (jumping)
{
rb2d.AddForce(new Vector2(1f, jumpForce));
jumping = false;
}
anim.SetBool("jumpFall", rb2d.velocity.y != 0f);
}
void Flip()
{
sprite.flipX = !sprite.flipX;
}
}
eu consegui resolver um pouco adicionando && !grounded ali no jump fall, ai ele anda porem por causa da velocidade ele é meio que lançado da ponte como se fosse uma rampa, aumentar a gravidade e depois a força do pulo resolveria?
rafaelllsd escreveu:Poste seu script para análise.
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Ah mais um teste, se puder ver este video, o personagem ainda da uma "travada" na animação, tentei usar 2 ground checkers mas so deu uma suavizadarafaelllsd escreveu:Poste seu script para análise.
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
mais um video mostrando o animatorrafaelllsd escreveu:Poste seu script para análise.
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Eu posso estar errado, mas o erro pode estar nela linha:
- Código:
anim.SetBool("jumpFall", rb2d.velocity.y != 0f);
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
rafaelllsd escreveu:Eu posso estar errado, mas o erro pode estar nela linha:pois quando você esta na grama seu personagem não cai nem sobe, então a velocidade do eixo Y é sempre 0, mas quando você sobe a ponte, esse valor passa a ser diferente de 0, pois você esta subindo e sua velocidade do eixo Y é diferente de 0, sendo assim fazendo a animação de pulo!
- Código:
anim.SetBool("jumpFall", rb2d.velocity.y != 0f);
Eu adicionei //("jumpFall", rb2d.velocity.y != 0f && !grounded); e deu uma resolvida mas ele fica pulando num pequeno ponto do lado direito da ponte igual nesse ultimo video
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Deixa as bools grounded e jumping como public por enquanto e observa elas durante o teste. Pode ser que esse grounded fica true quando um desses "ground checks" sai.
Com isso vc ver melhor uq está acontecendo de errado no andamento do jogo, depois vc volta pra private.
Com isso vc ver melhor uq está acontecendo de errado no andamento do jogo, depois vc volta pra private.
Nalfam- MembroAvançado
- PONTOS : 2436
REPUTAÇÃO : 32
Áreas de atuação : Unity
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
mathffBR e vc trocar o
grounded = Physics2D.Linecast (transform.position, groundChecker.position, 1 << LayerMask.NameToLayer ("ground"));
por
talvez resolva. veja esse video:
grounded = Physics2D.Linecast (transform.position, groundChecker.position, 1 << LayerMask.NameToLayer ("ground"));
por
- Código:
grounded = Physics2D.OverlapCircle(chaoVerificador.position, 0.02f);
talvez resolva. veja esse video:
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: [RESOLVIDO] Uma duvida sobre colliders 2d
Flávio escreveu:mathffBR e vc trocar o
grounded = Physics2D.Linecast (transform.position, groundChecker.position, 1 << LayerMask.NameToLayer ("ground"));
por
- Código:
grounded = Physics2D.OverlapCircle(chaoVerificador.position, 0.02f);
talvez resolva. veja esse video:
(demorei pois fiquei sem internet) Parece que isso funcionou, não to vendo nenhum bug, valeu ai cara e a quem deu atenção!
mathhBR- Membro
- PONTOS : 2127
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Duvida sobre versao da unity e sobre o lerp
» [RESOLVIDO] Duvida Sobre C#
» [Resolvido]Duvida sobre meu HUD
» [RESOLVIDO] Duvida sobre C# na Unity
» [RESOLVIDO] Duvida sobre Unity
» [RESOLVIDO] Duvida Sobre C#
» [Resolvido]Duvida sobre meu HUD
» [RESOLVIDO] Duvida sobre C# na Unity
» [RESOLVIDO] Duvida sobre Unity
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos