Jump to content
Sign in to follow this  
JuanchiBM

C# Tengo unos pequeños bugs

Recommended Posts

PRIMER BUG:

Mi problema es este, en este juego, cuando salto, programe que el personaje no se pudiera mover en el aire, cual es el problema? que, ademas del piso, existe otro collider, la caja, y al rozar la caja con el pie en medio del aire, ya te podes mover mientras estas flotando, lo logico seria hacer un "OnCollisionExit2D" Pero al hacer eso, ya no puedo empujar la caja, porque claro, al dejar de tocar la caja ya no me puedo mover y se me queda el personaje estatico, por lo que si moves la caja, no te podes despegar, mi idea seria crear un temporizador, por asi decirlo "Si no esta 1 minimo segundo tocando la caja, air = true" (Air es la variable que cree para que el personaje no se mueva en el aire) A continuacion les dejo el codigo (Solido representa la caja y Piso la plataforma)

introducir la descripción de la imagen aquíintroducir la descripción de la imagen aquíintroducir la descripción de la imagen aquí

bool canJump = true;
bool DontMove = true;
public bool air;

 if (air == true)
    {
        gameObject.GetComponent<Animator>().SetBool("Moverse", false);
        gameObject.GetComponent<Rigidbody2D>().drag = 0;
        DontMove = false;
        canJump = false;
        if (canJump == false)
        {
            gameObject.GetComponent<Animator>().SetBool("Saltar", true);
        }

private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.transform.tag == "Piso")
    {
        gameObject.GetComponent<Rigidbody2D>().drag = 1;
        DontMove = true;
        canJump = true;
        gameObject.GetComponent<Animator>().SetBool("Saltar", false);
        air = false;
    }       
    
    if (collision.transform.tag == "Solido")
    {
        gameObject.GetComponent<Rigidbody2D>().drag = 1;
        DontMove = true;
        canJump = true;
        gameObject.GetComponent<Animator>().SetBool("Saltar", false);
        air = false;
    }

 

SEGUNDO BUG:

Cuando ejecuto el programa en Unity, puedo pasar por el puente tranquilamente, pero cuando buildeo la aplicacion, al tocar el puente mi personaje queda estatico y no me puedo mover, alguien sabe porque?, el unico codigo que tiene mi puente es este:

(canJump permite al usuario saltar, DontMove permite al usuario moverse, al estar en diagonal el puente, le cambio el Lineal Drag y la Gravedad)

private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.transform.tag == "PuenteIzqAr")
    {
        gameObject.GetComponent<Rigidbody2D>().drag = 3f;
        DontMove = true;
        canJump = true;
        gameObject.GetComponent<Animator>().SetBool("Saltar", false);
        air = false;
        gameObject.GetComponent<Rigidbody2D>().gravityScale = 0.5f;
    }
}

private void OnCollisionExit2D(Collision2D collision)
{
    if (collision.transform.tag == "PuenteIzqAr")
    {
        gameObject.GetComponent<Rigidbody2D>().gravityScale = 3f;
    }
}

 

 

Share this post


Link to post
Share on other sites

Hola, no entiendo bien y trato de acerme la idea de la escena pero solo para darte idea si sirbe de ayuda.

Has pensado en usar los layers?  En el primer problema por ejemplo que el piso este en un layer "Piso" por ejemplo y ver si tu psj colisiona con un objeto en esa capa, de no ser asi, podras colisionar con otros en otras capas pero no lo dejaras moverse aun.

Espero que pueda ser de ayuda.

Saludos

Share this post


Link to post
Share on other sites
12 hours ago, paio458 said:

Hola, no entiendo bien y trato de acerme la idea de la escena pero solo para darte idea si sirbe de ayuda.

Has pensado en usar los layers?  En el primer problema por ejemplo que el piso este en un layer "Piso" por ejemplo y ver si tu psj colisiona con un objeto en esa capa, de no ser asi, podras colisionar con otros en otras capas pero no lo dejaras moverse aun.

Espero que pueda ser de ayuda.

Saludos

No lo habia pensado, voy a probarlo y te aviso, gracias 😄

Share this post


Link to post
Share on other sites
14 hours ago, paio458 said:

Hola, no entiendo bien y trato de acerme la idea de la escena pero solo para darte idea si sirbe de ayuda.

Has pensado en usar los layers?  En el primer problema por ejemplo que el piso este en un layer "Piso" por ejemplo y ver si tu psj colisiona con un objeto en esa capa, de no ser asi, podras colisionar con otros en otras capas pero no lo dejaras moverse aun.

Espero que pueda ser de ayuda.

Saludos

Bueno, lo intente pero todavia soy muy manco, voy a buscar tutoriales de como usar las layers pero x ahora no me sale ahre jajajja

  • Like 1

Share this post


Link to post
Share on other sites
Sign in to follow this  

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...