Tutorial #2 Juego de Plataforma/Metroidvania en Unity 2D:Como Saltar y Organizar código en C#

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 82

  • @designauniversal3353
    @designauniversal3353 3 роки тому +6

    Saludos, excelente tutorial, para aquellas personas que tienen problemas a la hora de saltar y tienen el codigo exactamente como el joven. El problema puede estar en "What is Ground" en el inspector de unity (como esta publico) solamente tienen que elegir GROUND. :)

  • @kiritmak._.1669
    @kiritmak._.1669 3 роки тому +2

    Hola, llevo siguiendo esta serie de tutoriales desde hace un tiempo, gracias por tomarte un tiempo de hacerlos crack

  • @jacobisaiballadareszelaya1984

    Execlente video, todo muy bien explicado y es una dicha estudiar con alguien como vos

  • @jordiamado8021
    @jordiamado8021 3 роки тому +4

    Muy buen tutorial,bien explicado,ameno,y con muchas ganas de seguir aprendiendo !!Sigue asi !!!

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому

      Gracias Jordi!! Create algo full chevere y lo compartes para jugarlo :D

  • @brncervantes
    @brncervantes 3 роки тому +1

    Hola hermano.. following from brazil.. im going to check the full playlist to keep up the new videos... Im new to unity and your work is good because its from zero... good job

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому +1

      Thank you so much Bruno, I really appreciatte you taking the time to comment even if the video is in Spanish, you're the inspiration to start uploading subtitles in port and eng! Muito obrigado!

  • @Toshen
    @Toshen 2 роки тому

    me encanta como haces los tutoriales

  • @nacho13gamer82
    @nacho13gamer82 Рік тому

    gracias we el unico video que logro hacer que haga el salto normal y eso que en una parte batalle pero no me habia fijado que puse OverlapCircleAll enves de OverlapCircle

    • @ClubGamerZone
      @ClubGamerZone  Рік тому

      Nada me brinda mayor alegria q leer este tipo de comentarios! Bueno si, que se subscriban :D

    • @asdafawfasdawdawdadawsdaws
      @asdafawfasdawdawdadawsdaws Рік тому +3

      @@ClubGamerZone tengo una pregunta, ¿cómo añado un doble salto usando el script de este video como base?

    • @asdafawfasdawdawdadawsdaws
      @asdafawfasdawdawdadawsdaws Рік тому

      Ya lo descubrí😁😅

    • @ClubGamerZone
      @ClubGamerZone  Рік тому

      @@asdafawfasdawdawdadawsdaws hahaha buena! Como le hiciste?

    • @asdafawfasdawdawdadawsdaws
      @asdafawfasdawdawdadawsdaws Рік тому

      @@ClubGamerZone Utilicé variables nuevas, un condicional else if nuevo y en vez de usar getbutton he usado getbuttondown para que solo me detecte si pulso el botón, si pones solamente getbutton detectará si lo pulsas, si lo sueltas, si lo mantienes pulsado... Te paso el código.
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class PlayerController : MonoBehaviour
      {
      public float speed;
      public float jumpHeight;
      public Transform groundcheck;
      public bool isGrounded;
      public float groundCheckRadius;
      public LayerMask whatIsGround;
      public int airHikeValue;
      int airHike;
      float velX, velY;
      Rigidbody2D rb;
      // Start is called before the first frame update
      void Start()
      {
      airHike = airHikeValue;
      rb = GetComponent();
      }
      // Update is called once per frame
      void Update()
      {
      isGrounded = Physics2D.OverlapCircle(groundcheck.position, groundCheckRadius, whatIsGround);
      FlipCharacter();
      Jump();
      }
      private void FixedUpdate()
      {
      Movement();
      }
      public void Jump()
      {
      if (isGrounded)
      {
      airHike = airHikeValue;
      }
      if (Input.GetButtonDown("Jump") && isGrounded)
      {
      rb.velocity = new Vector2(rb.velocity.x, jumpHeight);
      airHike--;
      }
      else if (Input.GetButtonDown("Jump") && airHike > 0)
      {
      rb.velocity = new Vector2(rb.velocity.x, jumpHeight);
      airHike--;
      }

      }
      public void Movement()
      {
      velX = Input.GetAxisRaw("Horizontal");
      velY = rb.velocity.y;
      rb.velocity = new Vector2(velX * speed, velY);
      }
      public void FlipCharacter()
      {
      if (rb.velocity.x > 0)
      {
      transform.localScale = new Vector3(1, 1, 1);
      }
      else
      {
      transform.localScale = new Vector3(-1, 1, 1);
      }
      }
      }

  • @salvadorgc8279
    @salvadorgc8279 3 роки тому +1

    Buenas tardes, maravillosos los tutoriales, ya los terminé casi todos, pero ahora les estoy dando otro repaso, mi pregunta sería la siguiente, no sería mejor, esas variables, ponerlas privaras y con un [SerializeField], pregunta de novato, pero según que tutoriales algunos lo haceis de una forma y otros de otra, cual sería la más óptima?

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому +1

      Hola, muchas gracias por tu apoyo! La manera óptima es [serializeField], realmente es un tutorial básico, quizá más adelanta vuelva a realizar un metroidvania pero ya con mucha programación orientada a objetos, gracias!"

  • @asdafawfasdawdawdadawsdaws
    @asdafawfasdawdawdadawsdaws Рік тому +1

    ¿Cómo añado un doble salto usando el script de este video como base?

  • @RetroGameCO
    @RetroGameCO 3 роки тому +1

    Excelente totorial bro

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому +1

      Mil gracias, retro!

    • @RetroGameCO
      @RetroGameCO 3 роки тому

      @@ClubGamerZone de nada hermano, sigue con esos tutoriales que como los tuyos no hay dos !!!!

  • @damiancamera2011
    @damiancamera2011 2 роки тому

    Amigo eres lo mejor, ya voy mas de la mitad del tuto y arranque con my juego, pero tengo un problema, cuando estoy caminando, en algun momento se me tranca en la pantalla, si voy hacia atras y salto esa parte puedo seguir caminando pero si voy hacia el mismo lado,lo puedo atravezar sin problema pero si camino hacia adelante nuevamente, se me tranca nuevamente, es como si hubiera una pared invisible, pero solo si voy hacia un sentido.....
    La verdad que no se que puede ser....

    • @damiancamera2011
      @damiancamera2011 2 роки тому

      Ya solucione, me falto en el Tilemap Collider poner use Composite.

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому

      @@damiancamera2011 Disculpa la super tardanza =(.. me alegra que ya estés avanzando!!

  • @JoseManuelRodenes
    @JoseManuelRodenes 3 роки тому

    Bueno el tuto, gracias!!!

  • @joseramonpellicerramis8599
    @joseramonpellicerramis8599 2 роки тому

    Buen tutorial. Pero si has probado de saltar desde un borde no puedes, puesto que el componente transform del groundcheck está situado en el centro del personaje. Creo que eso tiene fácil solución si creas dos groundchecks, uno debajo de cada pie de nuestro personaje. Después debes dar la condición de salto junto con los dos groundcheck o salto con solo un groungcheck o salto con solo el otro groundcheck. Un saludo.

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому

      Hola José! Gracias por tu típ. Te cuento que a mi no me falló y no me habían comentado de esto anteriormente, pero siempre es bueno saber qué hacer en caso que suceda! Yo creería que puede ser el tamaño del detector, también puede ser una solución, un saludo!

    • @joseramonpellicerramis8599
      @joseramonpellicerramis8599 2 роки тому +1

      @@ClubGamerZone No falla porque si te fijas el player siempre se apoya en el precipicio con la misma pierna (es decir el mismo checkground), puesto que cambia la escala del personaje de 1 a -1 en el eje x, pero prueba a ponerte en un precipicio con la otra pierna la que no tiene checkground y mira si puedes saltar! que puede pasar a menudo si saltamos un precipicio justos y estamos tocando el borde con la pierna que no tiene el checkground. A no ser que amplies el ratio de deteccion del checkground, pero a mi prefiero tener siempre un ratio minimo para que no interactue con otros colliders u objetos y sea lo mas real posible , es decir, como si realmente tocaramos con 2 pies en el suelo y no con una especie de capsula . Voy siguiendo tu curso con muchisimo interes, contigo he aprendido muchisimo. Todavia soy muy novato. Un saludo

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому +1

      @@joseramonpellicerramis8599 lo de los dos pues es cierto, igual como te digo todo depende de lo que desees, pero claro, entre más realismo quieras, más modificaciones debes hacer. Buen trabajo y ánimo José!

    • @joseramonpellicerramis8599
      @joseramonpellicerramis8599 2 роки тому

      @@ClubGamerZone muchas gracias!!!!!

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому

      @Oriol Janés Pereira hay un muy pequeño donde la velocidad de Y es 0 cuando estás en el aire, y es cuando cambias de saltar a caer, en ese pequeño frame puede haber problemas

  • @TheEnd6
    @TheEnd6 3 роки тому

    que buen tutorial xd

  • @ramshyblood
    @ramshyblood 3 роки тому +4

    venga, yo ando buscando gente para hacer una recreacion de symphony of the night solo que con algunos cambios y cosas extra, y busco hacer esto solo con gente que sea fan de castlevania, en mi canal encuentra algunas cosas que por ahi he hecho pero toda la programacion a mi solo me queda pesado, no se di depronto le gustaria desarrollar conmigo este proyecto, de hecho tambien ando haciendo este curso en udemy como para conocer mas mecanicas, pero si estaria genial que nos unieramos mas personas para desarrollar un juego de fans para fans

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому +1

      Una vez termine un proyecto que tengo pendiente, nos ponemos a hacerlo! Yo también tengo adelantado una recreación de Castlevania

  • @deibiazocar6006
    @deibiazocar6006 2 роки тому

    Por alguna razon no pude pasar del primer video, no se si sea mi version de los programas, pero ni siquiera me dejo introducir el script en el personaje, trate de que me quedara al pie de la letra como el tuyo por si habia cometido algun error. Pero no me deja introducirlo pues me dice que hay algun error x.x

  • @scratchguitar
    @scratchguitar 2 роки тому

    Hola amigo ya he logrado que se mueva mi personaje, pero no he podido hacer que salte con la barra espaciadora, cheque el input en project settings le hecho de todo y no logro hacer que reconozca el input de la barra espaciadora......
    muchas gracias y excelentes tutoriales!!!

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому +1

      me podr[ias mandar como tienes el codigo de Jump?

    • @scratchguitar
      @scratchguitar 2 роки тому

      @@ClubGamerZone Hola amigo aqui eta tal y como lo
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      using UnityEngine.InputSystem;
      public class PlayerController : MonoBehaviour
      {
      public float speed, jumpHeight;
      float velX, velY;
      Rigidbody2D rb;
      // Start is called before the first frame update
      void Start()
      {
      rb = GetComponent();
      }
      // Update is called once per frame
      void Update()
      {
      FlipCharacter ();
      }
      private void FixedUpdate()
      {
      Movement();
      Jump();
      }
      public void Movement()
      {
      velX = Input.GetAxisRaw("Horizontal");
      velY = rb.velocity.y;
      rb.velocity = new Vector2(velX * speed, velY);
      }
      public void Jump()
      {
      if (Input.GetButtonDown("Jump"))
      {
      rb.velocity =new Vector2 (rb.velocity.x, jumpHeight);
      }
      }
      public void FlipCharacter()
      {
      if (rb.velocity.x > 0)
      {
      transform.localScale = new Vector3(1, 1, 1);
      }
      else
      {
      transform.localScale = new Vector3(-1, 1, 1);
      }
      }
      }

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому +1

      @@scratchguitar mueve el jump al update de primero

    • @scratchguitar
      @scratchguitar 2 роки тому

      @@ClubGamerZone ya lo hice y sigo teniendo el mismo problema, creo que el problema no es El script, si no la entrada del control, será que me falta configurar el input de "jump" ?

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому +1

      @@scratchguitar es probable, intenta usando “getKeydown (keycode.space) a ver qué tal (ojo con las mayúsculas y minúsculas, acá las escribí mal)

  • @cristiancarrazana3131
    @cristiancarrazana3131 3 роки тому

    hola ayuda cuando salto se va gira el flip a la izquierda (solo salta y se pone flip a la izquierda gracias por los video
    mejor explicado inposible.

  • @alexguitar97
    @alexguitar97 3 роки тому +1

    Buenos tutoriales pero hay una cosa que se explica aquí que esta horriblemente mal. Si quieres hacer un atributo visible en el inspector usas [SerializeField], ni haces la variable pública y ya, ya que podría dar problemas en el posterior desarrollo. En la POO, cuántas más variables privadas mejor.

  • @oscarcontreras3346
    @oscarcontreras3346 2 роки тому

    Hola, tengo una duda, porque se tiene que crear un objeto vacío ligado al jugador para ocupar si transform y no se puede ocupar el del jugador ?

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому +1

      No se tiene que crear, es opcional, lo hago de esa manera para poder usar la posición del player y agregar diferentes cosas al jugador, como transformaciones, teleport, y demás

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому

      Ohh, si te refieres al groundDetector, es más por organización

    • @oscarcontreras3346
      @oscarcontreras3346 2 роки тому

      @@ClubGamerZone muchas gracias master

  • @alexsander_2085
    @alexsander_2085 3 роки тому

    eres un crack

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому

      Gracias gamer! Por tu apoyo y comentario !

  • @SpyBotxP
    @SpyBotxP 3 роки тому

    excelente video, sigue asi!!

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому

      Muchas gracias master! Se me acaba de ocurrir hacer una colaboración tocando Have you ever! pero vi que tu video es de hace 6 años xD

  • @carlosdaniel-qx6dx
    @carlosdaniel-qx6dx 3 роки тому

    hola, como puedo solucionar el salto al momento de dar clip para saltar, no deja de subir sin parar......
    una solución que me pueden brindar
    gracias....

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому

      Mira la gravedad del rigidbody, aumentarla

  • @denistarulli2177
    @denistarulli2177 2 роки тому

    Hola, muchas gracias por el video, una pregunta, al poner el metodo de Jump en la parte de fixedupdate anda medio mal, a veces me toma el salto al apretar el espacio y a veces no, pero anda bien cuando lo pongo en update normal, alguna solucion ?

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому

      Lo hiciste correctamente, el método de jumó debes dejarlo en Update, si lo coloque en fixed es error mío. Muchas gracias :D

  • @Yazzar
    @Yazzar 3 роки тому

    estoy viendo este tutorial y tras agregar las capas, no se que paso que no puedo arrastrar gameobjects en la escena, me sale un icono de "prohibido" ¿alguien sabe que puede ser?

  • @blake_sc
    @blake_sc 2 роки тому

    Hola!, tengo una pequeña duda que no se como solucionar, al momento de saltar mi personaje siento que tarda mucho en volver al suelo, osea si baja, pero tarda un tiempo considerable

  • @hugoperez8493
    @hugoperez8493 3 роки тому

    Hola bro una pregunta, antes de usar unity usaba otro programa pero en el otro sacaba una imagen y si la estiraba se podia repetir automaticamente hasta que yo quisiera ¿esto se puede aqui en Unity?

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому

      Suena a algo que se puede lograr con las texturas, personalmente nunca lo he hecho, pero seguramente si

  • @SaulD-xd6mj
    @SaulD-xd6mj 2 роки тому

    hola, no se si responderas pero tengo un problema. Cuando hago el gameobject no me sale las flechas o figura tuya para poner debajo de los pies de mi personaje, en cambio sale una pelota que no me deja interactuar con ella, agradeceria si pudieras ayudarme

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому +1

      Selecciona el game object u presiona "w", eso e debe mostrar las flechas

    • @SaulD-xd6mj
      @SaulD-xd6mj 2 роки тому

      @@ClubGamerZone muchas gracias, lo intentare para ver que sucede

    • @ClubGamerZone
      @ClubGamerZone  2 роки тому +1

      @@SaulD-xd6mj me avisas

    • @SaulD-xd6mj
      @SaulD-xd6mj 2 роки тому

      @@ClubGamerZone
      Hola, si funciono muchas gracias. no conozco todas las telcas y sus funciones en unity. Estoy recien aprendiendo desde 0 en esto. Muchas gracias por la ayuda

  • @SagePhantom
    @SagePhantom 3 роки тому

    Hola bro excelentes tutoriales. Me preguntaba si es que acaso te puedo molestar por Instagram realizándote alguna consulta. Muchas gracias desde ya.

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому

      Hola Zerosan, gracias por tu comentario y tu apoyo, te cuento que no uso mucho instagram, pero puedes contactarme via facebook (clubgamerzone) o en el canal de discord que está en los comentarios!

  • @tonyagelis4016
    @tonyagelis4016 Рік тому

    Você está fazendo um detonado desse jogo família é.

  • @kiritmak._.1669
    @kiritmak._.1669 3 роки тому

    Alguien me puede ayudar en un bug? Añadi plataformas improvisadas poniendo un rectangulo que hize en asesprite como game object, luego le puse un Box Colider2D, le puse capa suelo, pero cuando salto por debajo del techo de la plataforma, me puedo quedar pegado a la plataforma si mantengo apretado el espacio, tengo el radio del isGrounded en 0.2 y cuando salto no salgo a volar, alguien sabe por que me pasa esto?

    • @albertblanco8044
      @albertblanco8044 Рік тому

      creo que es porque tienes que ponerle en la plataforma que "is trigger" para que el personajito no se quede pegado

  • @benjaroman5071
    @benjaroman5071 3 роки тому

    Muchas gracias! estimado puse todos los codigos como indicas pero mi personaje no salta, lo que ingrese es lo siguiente:
    public class PlayerControler : MonoBehaviour
    {
    public float speed, jumpHeigh;
    float velX, velY;
    Rigidbody2D rb;

    // Start is called before the first frame update
    void Start()
    {
    rb = GetComponent();
    }
    // Update is called once per frame
    void Update()
    {
    FlipCharacter();
    }
    private void FixedUpdate()
    {
    Movement();
    }
    public void Jump()
    {
    if (Input.GetButtonDown("Jump"))
    {
    rb.velocity = new Vector2(rb.velocity.x, jumpHeigh);
    }
    }
    public void Movement()
    {
    velX = Input.GetAxisRaw("Horizontal");
    velY = rb.velocity.y;
    rb.velocity = new Vector2(velX * speed, velY);
    }
    public void FlipCharacter()
    {
    if (rb.velocity.x > 0)
    {
    transform.localScale = new Vector3(1, 1, 1);
    }
    else
    {
    transform.localScale = new Vector3(-1, 1, 1);
    }
    }
    segun yo esta tal cual como lo enseñaste, habre cometido algun error? Saludos!

    • @ClubGamerZone
      @ClubGamerZone  3 роки тому

      public float speed, jumpHeigh = 5; iontenta aasi a ver, si no te funciona con 5, ponle 10, 15, o mas valor

    • @benjaroman5071
      @benjaroman5071 3 роки тому

      Muchas gracias! intente con varios valores en jumpHeigh y no pasa nada, tambien me fui a proyect setting para ver que tecla estaba asignada a Jump y tengo la correcta, aun asi no funciona :(

    • @xslayerghostx1776
      @xslayerghostx1776 3 роки тому

      igual a mi no me salta , dejo de saltar luego de ordenar los codigos

    • @xslayerghostx1776
      @xslayerghostx1776 3 роки тому

      @@ClubGamerZone error solucionado hay que ver si esta ground en whats is ground? en unity , luego verificar si ground el suelo tiene el layer como : ground , mi problema era que nos e guardo correctamente un erro comun en mi unity , y no se guardo los cambios de layer ground y el whats is ground: ground , para los que tengan el error de salto ese es un problema, el otro que encontre fue tener sin querer en minuscula el Player de nombre en el scripts en unity porque lo tenia como player y eso me genero un error pero lo cambie alli y dentro del scripts