Cómo hacer que un personaje SALTE en Unity (Método DEFINITIVO 💯)

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

КОМЕНТАРІ • 433

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

    SIGUE LA SERIE 👉🔴Cómo CREAR una ANIMACIÓN en Unity (𝐏𝐚𝐬𝐨 𝐚 𝐏𝐚𝐬𝐨!!)
    ➤ ua-cam.com/video/HcHjlmrARuE/v-deo.html
    🤔¿Tienes dudas? pregúntame en este enlace 👇👇👇
    rocketjam.dev/contacto

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

      Bro,mi personaje no se le soluciona el error de saltar en el aire

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

      Hola lo siento, tengo todo el codigo bien pero el codigo me salta el error cs1729 o que el "Vector2" no contiene un constructor que tome 6 argumentos, sabe como se soluciona?

  • @b-toni-go5083
    @b-toni-go5083 2 роки тому +3

    Se lo agradezco demasiado. Había probado muchos métodos de saltos y todos servían, solo que no encajaban en mi juego unity. Gracias a ti, logre encontrar el salto adecuado, ahora el jugador puede saltar en la orilla del piso, solo detecta suelo y no se pega en las paredes.
    Me impresiona los códigos que usaste, no los conocían, me servirán mucho para ahorrar líneas. Gracias por la ayuda y tome su 👍 buen hombre.

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

      Muchas gracias gracias por el Super Thanks! Me alegro de que te haya servido. Un saludo!

  • @tremerin7323
    @tremerin7323 3 роки тому +8

    Gran tutorial! Una mecánica como el doble salto que ha sido explicada por muchos pero a menudo de formas muy chapuceras, aburridas y largas, pero tu la has clavado!

  • @leobottacin1822
    @leobottacin1822 3 роки тому +48

    Hasta el minuto 12:50 no aparece la Capa Suelo en el CharacterControler asi que no lo busquen en el 11:20 jajaja. Y el signo desigual déjenlo como !=

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

    No entiendo porque tan pocos likes xd la verdad tus explicaciones son muy claras y también le das ese gusto picante de reto al no tener todas las respuestas servidas, porque hay pequeñas trampitas para que uno piense el porque no sale igual xDD eso lo hace mas entretenido.
    Gracias por el tiempo invertido, es usted genial!

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

      Me alegro que te gusten mis vídeos! Muchas gracias :)

  • @prod_Rauru
    @prod_Rauru Рік тому +7

    Para los que le salte infinitas veces, después incluso de tener el código impecable, el problema casi SIEMPRE, reside en que el collider que habeis creado para detectar el suelo, también detecta el box 2d collider del jugador, para probar que es así, lo desactivais o borrais, y si ese es el problema, pal chat gpt y le pedis que os implemente el physics 2d overlapboxAll, que omite los colliders del jugador

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

      Gracias 🙃

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

      Puf, mal consejo lo suyo es que chatgpt se lo explique no que se lo haga

  • @josecastroantonio
    @josecastroantonio 2 роки тому +19

    *02:55** ForceMode2D.Impulse [tipo de fuerza]*
    *03:42** Calibrar gravedad y fuerza del salto*
    *06:54** Quitar fricción con las paredes*

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

      no me aparece el material fisico 2d
      :(((((((

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

      a mi tampoco asi que buscalo en los component@@Xddddeek

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

      @@Xddddeek Assets > Create > 2D > Physics Material 2D. En las versiones más recientes de Unity movieron algunas cosas. Te recomiendo buscar en la documentación de Unity cuando te pase algo como eso

    • @the_agus_tate3966
      @the_agus_tate3966 7 місяців тому

      @@Shinobi3264 gracias jajjaja

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

    El mejor canal donde puedes aprender a, usar Unity

  • @pabloduque1956
    @pabloduque1956 3 роки тому +3

    Este tipo de videos son oro. Gracias!!!

  • @jeffryortegaperez
    @jeffryortegaperez Рік тому +17

    [Header("Movimiento")]
    [SerializeField]private float velocidad;
    [Header("Salto")]
    [SerializeField]private float fuerzaSalto;
    [Header("Saltos Multiples")]
    [SerializeField]public int saltosMax;
    [SerializeField]private int saltosRestantes;
    private Rigidbody2D rb;
    private BoxCollider2D bc;
    public LayerMask Suelo;
    [SerializeField] private bool mirandoDerecha = true;

    void Start()
    {
    rb = GetComponent();
    bc = GetComponent();
    saltosRestantes = saltosMax;
    }

    void Update()
    {
    ProcesarMovimiento();
    ProcesarSalto();
    }
    bool EstaEnSuelo()
    {
    RaycastHit2D rayCast2D = Physics2D.BoxCast(bc.bounds.center, new Vector2(bc.bounds.size.x, bc.bounds.size.y), 0f, Vector2.down, 0.2f, Suelo);
    return rayCast2D.collider != null;
    }
    void ProcesarSalto()
    {
    if(EstaEnSuelo())
    {
    saltosRestantes = saltosMax;
    }
    if(Input.GetButtonDown("Jump") && saltosRestantes > 0)
    {
    rb.velocity = new Vector2(rb.velocity.x, 0f);
    rb.AddForce(Vector2.up * fuerzaSalto, ForceMode2D.Impulse);
    saltosRestantes--;
    }
    }
    void ProcesarMovimiento()
    {
    float inputMovimiento = Input.GetAxis("Horizontal");
    rb.velocity = new Vector2(inputMovimiento * velocidad, rb.velocity.y);

    GestionarOrientacion(inputMovimiento);
    }
    void GestionarOrientacion(float inputMovimiento)
    {
    if((mirandoDerecha && inputMovimiento < 0) || (mirandoDerecha == false && inputMovimiento > 0))
    {

    mirandoDerecha = !mirandoDerecha;
    transform.localScale = new Vector2(-transform.localScale.x, transform.localScale.y);
    }
    }

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

      No es por molestar pero dice que tu código tiene 7 errores

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

      Los errores pueden ser los nombres, dudo que los nombres del codigo sean los mismos que los que tu agregaste

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

      gracias

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

    Que padre me sorprende no a ver encontrado este canal antes

  • @Neo-Madness
    @Neo-Madness Рік тому +4

    lo de la friccion puede servir pues al quedarse pegado en la pared por unos 2 o 1 segundo te da la opcion de poder hacer la ilusion de si se agarrase de la pared y saltase
    Aprovechando errores parte 1

    • @extremeGames-uf2if
      @extremeGames-uf2if Рік тому

      Vaya q guay y al meterse dentro una animación diferente aprovechando Bugs parte 2

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

    Gracias wey, te amo, no había podido configurar ese problema, enserio que muchas gracias. :D

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

    Ese problema de que al segundo salto lo afectaba ligeramente la gravedad me traía vuelto loco. Muchas gracias por el vídeo me sirvió mucho.

  • @TheSefirot1986
    @TheSefirot1986 Рік тому +2

    Sigo tu curso me esta enganchando, enhorabuena no tiene desperdicio, una cosa que aclarar, tras desesperarme con los saltos infinitos, creo que di con la solución, en el minuto 14:39 del vídeo cuando añades saltosRestantes - -;, yo añadí otra línea igual, quedando así
    saltosRestantes - -;
    saltosRestantes - -;
    Y parece que ya no da saltos infinitos, x si a alguien le sirve.
    Un saludo

    • @user-kv9gb3ri9u
      @user-kv9gb3ri9u Рік тому

      estuve mas de media hora intentando arreglar eso, me salvaste :D

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

    Hay un problema que detecto yo, quiza exista otra forma de solucionarlo, pero si nosotros quiza usamos un tilemap y alli dcimos que los bordes sean suelo, va a saltar por la pared tambien

  • @mathmark8668
    @mathmark8668 2 роки тому +4

    cuando el jugador salta y choca su cabeza con un objeto(en este caso con un objeto flotante como esta en tu mapa ),la cabeza del jugador queda pegado a ese objeto (siempre y cuando aprietes la tecla space rápidamente).Es un bug que no se si solucione con Invoke() o con disminuir la caja de colision.

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

      si, a mi me pasa igual y no se como solucionarlo

  • @Alberto-wt8oj
    @Alberto-wt8oj 3 роки тому +1

    Que gran tutorial, me has ayudado a quitar los saltos infinitos.Gracias
    PD:Te has ganado un suscriptor nuevo 😁

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

    Para los que no les deja lo del physic material
    Arriba en assets le dan a 2d y ahi esta

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

    ay un problema no se porque sigo saltando muchas veces y todo lo e echo bien ayuda gracias.

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

    Te amo!!!!!!!!!!! tus videos son increíbles.

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

      Muchas gracias! Me alegro de que te sean útiles :)

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

    podrías hacer un video enseñando a como crear un salto regulable? sos alto capo.

  • @Haes_YT
    @Haes_YT 2 роки тому +6

    Alguien me puede ayudar hasta ahora seguir los pasos y no me sale la capa suelo
    PDST: mi personaje esta mirando a la izquiera por eso el false
    SCRIpt:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class Player_controller : MonoBehaviour
    {
    public float velocidad;
    public float fuerzaSalto;
    public LayerMask capaSuelo;
    private Rigidbody2D rigidBody;
    private BoxCollider2D boxCollider;
    private bool mirandoDerecha = false;

    private void Start()
    {

    rigidbody = GetComponent();
    boxCollider = GetComponent();
    }
    // Update is called once per frame
    void Update()
    {
    ProcesarMovimiento();
    ProcesarSalto();
    }
    bool EstaEnSuelo()
    {
    RaycastHit2D raycastHit = Physics2D.BoxCast(boxCollider.bounds.center, new Vector2(boxCollider.bounds.size.x, boxCollider.bounds.size.y), 0f, Vector2.down, 0.2f, capaSuelo);
    return raycastHit.collider != null;
    }

    void ProcesarSalto()
    {
    if(Input.GetKeyDown(KeyCode.Space) && EstaEnSuelo()
    {
    rigidBody.AddForce(Vector2.up * fuerzaSalto, ForceMode2D.Impulse);
    }
    }
    void ProcesarMovimiento()
    {
    // Logica de movimiento.
    float inputMovimiento = Input.GetAxis("Horizontal");

    rigidbody.velocity = new Vector2(inputMovimiento * velocidad, rigidbody.velocity.y);

    GestionarOrientacion(inputMovimiento);
    }

    void GestionarOrientacion(float inputMovimiento)
    {
    //si se cumple condicion
    if( (mirandoDerecha == false && inputMovimiento > 0) || (mirandoDerecha == true && inputMovimiento < 0) )
    {
    // ejecutar código de volteado
    mirandoDerecha = !mirandoDerecha;
    transform.localScale = new Vector2(-transform.localScale.x, transform.localScale.y);
    }
    }
    }

    • @Thefinalsong638
      @Thefinalsong638 8 місяців тому

      Bueno recuerda que primero tienes que crearla por unity(no por los codigos), vas a layers,.... y luego pones "add layer"..., y luego nombras una en la capa 6 o 8 no importa, si le pusiste "capasuelo" mola, tu codigo esta bien si haces eso ya te deberia aparecer, por si acaso recuerda que todos los personajes deben estar en la misma Layer

  • @AaronTodd.
    @AaronTodd. 3 роки тому +7

    Hay un error y cuando pongo 2 en numero de salto lo detecta en 3 y otra cosa cuando choco con una pared me detecta que toque el piso y me da otros 2 saltos en el aire pd:Tambien pasa si choca con el techo

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

      Para que no te pase esas cosas tendrás que ajustar los valores que le pasas a la función del BoxCast. Prueba a hacer la caja un poco más pequeña que el collider y darle menos distancia al cast. Un saludo.

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

      Yo tengo este problema también, ya probé prácticamente de todo y no me ah funcionado nada

    • @abdielruiz268
      @abdielruiz268 2 роки тому +2

      Prueben restarle 0.1f al boxCollider.bounds.size.x e y. Así: (boxCollider.bounds.size.x - 0.1f, boxCollider.bounds.size.y - 0.1f)

  • @alexis-xy8es
    @alexis-xy8es 3 роки тому

    gracias master excelente tutorial

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

    Gracias por compartir

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

    Buen contenido, enhorabuena por el canal. Me suscribo!

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

    eres el mejor

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

    Hola, ¿Podrías hacer un tutorial de como hacer que el personaje escale las paredes?

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

    bien explicado, turoeial exelente

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

    Buen video, muchas gracias

  • @cesarrogelioceronvargas951
    @cesarrogelioceronvargas951 6 місяців тому

    Muchas gracias por tan buenas explicaciones

  • @aldomtz9997
    @aldomtz9997 6 місяців тому +1

    como se pone el simbolo de igual atravesado

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

    tengo el mismo problema de que cuando colisiono con una pared o con un techo se reinicia el contador pero solo me da un salto mas no me molesta pero me gustaria quitarle ese salto de mas hasta mientras seguire el siguiente tutorial no pares enseñas mejor que un profesor de universidad

    • @-magicxty-7014
      @-magicxty-7014 Рік тому +1

      no contesta comentarios que no sean de apoyo

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

    no logro solucionar el problema de que me sigue saltando 800 veces, ósea apretó el de saltar y quiero que cuando toque tierra tenga que volver a saltar, lo que hace es que en el mismo aire salta , yo no quiero que en el aire salte y si pongo el código de alguien mas, tengo que borrar todos lo ajustes para que funcione el nuevo código pero prácticamente tengo que hacer todo de cero

  • @cristhophermartinez8180
    @cristhophermartinez8180 3 роки тому +3

    hola ayuda tengo un problema es este Assets\scripts\controlcharacter.cs(28,10): error CS0161: 'controlcharacter.EstaEnSuelo()': not all code paths return a value estoy en el proceso de el minuto 11:56

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

      Hola, más adelante en el vídeo continuo desarrollando esa función con la línea de "return raycastHit.collider != null" con eso debería funcionarte. Un saludo.

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

      @@RocketJam Assets\scripts\controlcharacter.cs(31,16): error CS0103: The name 'raycastHit' does not exist in the current context eso me salta lo siento soy un total desastre en esto abecés quiero darme por vencido

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

      te importaría si seguimos en contacto por Instagram ahora mismo eres la persona con quien puedo hablar sobre programación

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

      ​@@cristhophermartinez8180 Tienes que tener cuidado de escribirlo exactamente como lo has hecho a la hora de declararlo, te recomiendo que compares tu código de la función estaEnSuelo() con el mío, tienes un enlace en la descripción pero también lo puedes consultar aquí 👇 gist.github.com/RocketJamDev/2c206fb069d102a2182d46b223a1399d
      Ánimo!

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

      Ok gracias mi Bro seguiré buscando gracias por los ánimos así comienza a subir mucho contenido para que UA-cam y su adgorimo comienzé a recomendarte a más gente

  • @Chinz3r0
    @Chinz3r0 2 роки тому +2

    Muchas gracias por los tutoriales son de gran ayuda, quisiera preguntar por que siempre hago que cuando pone 1 salto, salte 2 veces, cuando pone 2, salta maximo 3, y asi, no logro solucionarlo :(

  • @Un_Random_de_Internet
    @Un_Random_de_Internet 3 роки тому +2

    hola cuando copie y pegue el scrip y lo guarde me salio esto The referenced script on this Behaviour (Game Object 'personaje') is missing! como lo soluciono?

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

      A mi igual

    • @diegoabarza3069
      @diegoabarza3069 3 роки тому +3

      Esto funciona con nombres si tu personaje se llama player no funciona ya que no detecta el nombre de personaje podria ser eso

  • @SEI1511
    @SEI1511 Рік тому +2

    Tengo el código perfecto pero mi personaje sigue saltando infinitamente.
    Alguien sabe por que?

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

      we ami tambien me pasa pipipi

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

      @@adrianvilchezolivares8393 ya lo pude arreglar solo que tuve que quitar el doble salto, si no me daba el mismo problema

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

      como quitas el doble salto?

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

      @@adrianvilchezolivares8393 borra todo el código de salto y cópialo de nuevo, pero no metas obviamente el del doble salto

  • @camilomunoz3504
    @camilomunoz3504 Місяць тому

    Una pregunta, cuando termino el codigo de saltos dobles, ya cuando le asigno que los saltos máximos son dos, y termino de compilar todo el codigo de saltos, cuando le doy a play, hay veces en que el personaje me da tres y no dos saltos, ¿qué puedo hacer ahí?

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

    Estoy esperando el siguiente ya!! Son fenomenales tus video s y si a ti te es más cómodo creo q no pasaría nada por qué añadirse algo más por capítulo ya que sino vas a tener q hacer bastantes más no??

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

      Prefiero mantenerlos cortos aunque salgan muchos, porque así son más fáciles de hacer y menos pesados de ver jajajajaj

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

      Nice 👍 pues esperando con ansias el siguiente.... 😁

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

    super util

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

    Algo que haría mucho más fluido y mejor el salto, sería el tiempo muerto al dejar la plataforma como en Mario Bros, Gracias por el tuto 👍

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

    Hola, de antemano que buenos videos la verdad estoy muy contento de poder haber encontrado tu curso, amm me surgió un problema y no sé si puedas ayudarme al resolver los bugs mi player dejo de saltar y no sé a qué se deba, soy nuevo en esto y no moví absolutamente nada,

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

      Buenas! Sí quieres puedes mandarme tu código a través de la página de contacto de mi web rocketjam.dev/contacto un saludo!

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

      @@RocketJam Hola, la verdad muchas gracias por responder, al final le di muchas vueltas y resolvi el problema, soy nuevo en esto haha saludos y gracias, ah y el error fue desde el tile set no lo hice igual que tu y ya despues entendi que marque no coo si fuece el suelo bueno, algo a si despues de desmarcar algunas cosas y a si,
      funciono

    • @extremeGames-uf2if
      @extremeGames-uf2if Рік тому

      Y me das la respuesta

    • @extremeGames-uf2if
      @extremeGames-uf2if Рік тому

      Jajaja

    • @random-fh5ke
      @random-fh5ke Рік тому

      @@extremeGames-uf2if a ti como te fue, te dio algun error?

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

    Muy buenas Antonio. El vídeo está muy entretenido, gracias por explicarlo tan bien. Pero tengo una duda existencial; 😬 ¿Qué tipo de fuente usas en Visual Studio? Se ve bastante interesante, y tengo ganas de cambiar un poco, pero encontrar fuentes monoespaciadas que sean bonitas a la vez que legibles es complicado. Gracias. 😉

    • @RocketJam
      @RocketJam  3 роки тому +3

      Muchas gracias! La fuente si no recuerdo mal se llama Dank Mono.

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

    Assets\Scripts\PlayerMovement.cs(31,168): error CS1513: } expected, auxilio me salen 7 errores igual a este que puede ser ??

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

    El personaje puede realizar un salto de pared en mi caso, si choco con una pared y luego giro inmediatamente al lado contrario y salto se puede hacer de forma más o menos constante ¿Cómo podría arreglar eso?

    • @-magicxty-7014
      @-magicxty-7014 Рік тому

      literal este loco solo contesta comentarios de apoyo, si buscas que te conteste suerte.
      pd: yo tengo el mismo problema y no se solucionarlo

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

    Tengo un problema con los saltos dobles y es que el personaje si le pongo que saltos máximos dos salta indefinidamente y si le pongo 1 salta solo una vez

    • @tomasboomv
      @tomasboomv 9 місяців тому

      Me pasa lo mismo

  • @jeffryortegaperez
    @jeffryortegaperez Рік тому +2

    alguien sabe porque al hacer el salto, la variable saltosRestantes hay ocaciones en q no disminuye 1 cuando se presiona la tecla, haciendo q el personaje de 1 salto de mas?

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

      Es posible que la comprobación de que el personaje está tocando el suelo se esté haciendo en el primer frame del salto cuando el personaje esta tocando el suelo. Por esa razón el primer salto no cuenta y tendrías un salto más. Para solucionarlo habría que esperar unas décimas de segundo a que el personaje se separe del suelo para empezar a comprobar. En el vídeo del Slime hago algo parecido por si necesitas una referencia de cómo hacerlo. Un saludo!

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

      de que vídeo hablas? tengo el mismo problema@@RocketJam

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

      conseguiste arreglar tu problema? Me ocurre lo mismo.

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

    Me ayudas mucho estoy en el celular de mi papá

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

    Perdonar xo este sería el #005 del curso? Es que no lo pone en el título?
    Gracias un saludo

  • @fabriziovallejo9959
    @fabriziovallejo9959 Рік тому +2

    tengo un problema,me da saltos infinitos, saben cual podria ser el problema?, lo tengo para que de solo 2 saltos pero da infinitos

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

      Ase gurate que el personaje este en Default y que el script este en suelo

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

    Hola, ¿Cuál es realmente la diferencia entre emitir un rayo y la caja para el control de la colisión con el suelo? ¿Qué beneficios tiene la caja?. Gracias por su tiempo.

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

      Quizas tu personaje esta parado bien en la punta de una montaña (esta tocando el suelo con pocos pixeles), su raycast sale desde el centro del personaje entonces no tocaria suelo (ya que el centro del personaje efectivamente no esta sobre suelo). Sin embargo el box al tener el tamaño del personaje, si cualquier parte de los pies toca el suelo, reconocera que EstaEnSuelo.
      Creo que va por ahi la explicacion

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

      @@ProGustavo20 Muchas gracias, me resuelta muy útil su respuesta.

  • @gaby-vx8wb
    @gaby-vx8wb Рік тому +1

    Para a los que no le aparese el physic materia 2d , es que en las nuevas verciones tienes que crear un asser y en 2d aparese para elegirlo

  • @hellomaty
    @hellomaty 2 роки тому +2

    Holaa Rocket tengo un problema , cuando cambio de scena el jugador salta bajo y me fijo si an cambiado los valores de fuerza de salto y demas y siguen igual, que seria?

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

      Hola! Puedes mandarme tu código a través del formulario de contacto de mi página web www.rocketjam.dev/contacto así le puedo echar un ojo e intentar ayudarte. Un saludo!

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

    Hola, en lo de que no de doble salto, cuando termino y guardo me sale error CS1022:Type or namespace definition, or end-of file expected. Y tampoco me deja probarlo ni cambiar lo de la capaSuelo desde la propiedad del script. ¡Por favor, que alguien me ayude!!

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

      hola te digo nose si aun tendras el problema pero a mi me sucedia lo mismo y este es el script que tengo y me sirve
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class caractercontroler : MonoBehaviour
      {
      public float velocidad;
      public float fuerzasalto;
      public float SaltosMaximos;
      public LayerMask Capasuelo;
      public caractercontroler(LayerMask capasuelo)
      {
      Capasuelo = capasuelo;
      }
      private new Rigidbody2D rigidbody;
      public Rigidbody2D Rigidbody { get => rigidbody; set => rigidbody = value; }
      private BoxCollider2D boxCollider;
      private float SaltosRestantes;
      private bool mirandoDerecha = true;
      private void Start()
      {
      Rigidbody = GetComponent();
      boxCollider = GetComponent();
      SaltosRestantes = SaltosMaximos;
      }
      // Update is called once per frame
      void Update()
      {
      ProcesarMovimiento();
      ProcesarSalto();
      }
      bool EstaenSuelo()
      {
      RaycastHit2D raycastHit = Physics2D.BoxCast(boxCollider.bounds.center, new Vector2(boxCollider.bounds.size.x, boxCollider.bounds.size.y), 0f, Vector2.down, 0.2f, Capasuelo);
      return raycastHit.collider != null;
      }
      void ProcesarSalto()
      {
      if (EstaenSuelo())
      {
      SaltosRestantes = SaltosMaximos;
      }

      if (Input.GetKeyDown(KeyCode.Space) && SaltosRestantes > 0)
      {
      SaltosRestantes--;
      rigidbody.velocity = new Vector2(rigidbody.velocity.x, 0f);
      Rigidbody.AddForce(Vector2.up * fuerzasalto, ForceMode2D.Impulse);
      }
      }
      void ProcesarMovimiento()
      {
      // Logica de Movimiento.
      float InputMovimiento = Input.GetAxis("Horizontal");

      Rigidbody.velocity = new Vector2(InputMovimiento * velocidad,
      Rigidbody.velocity.y);
      GestionarOrientacion(InputMovimiento);
      }
      void GestionarOrientacion(float InputMovimiento)
      {
      // Si se cumple condicion
      if ((mirandoDerecha == true && InputMovimiento > 0) || (mirandoDerecha == false && InputMovimiento < 0))
      {
      // Ejecutar codigo volteando
      mirandoDerecha = !mirandoDerecha;
      transform.localScale = new Vector2(-transform.localScale.x, transform.localScale.y);
      }
      }
      }
      espero y te sirva

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

      Ok gracias, deje de hacer el 2d y estoy probando 3d pero muchas gracias, para otro juego me servira

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

    Algo tarde, pero tengo un problema el cual es que el doble salto no es constante, me explico, dentro de unity cuando le marco que el maximo de saltos es 2, en un inicio funciono, pero a lo largo que seguia escribiendo codigo, cada vez que probaba o no funcionaba, o funcionaba pero luego dejaba de dar soble salto, se soluciono al marcar con 3 salto maximos, saltaba sin problemas, pero habeces podias dar 3 saltos
    En resumen, como hago que el doble salto sea constante y no tardio?

  • @renatoespinozahassinger3253

    ayuda, caudno hago todo no me sale la opcion para cambiar o asignar la capasuelo(si puedo editar la velocidad y la fuerza de salto pero esta no)

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

    Hola Antonio! Tengo un problema con el salto! realmente funciona a la perfección lo que enseñaste, y el código esta bien! Solo que al parecer por lo que comprendo la caja es demasiado grande y eso hace que la función detecte el suelo sin siquiera tocarlo, incluso copiando tu código a la perfección pasa, como hago para cambiar el diámetro de la caja?

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

      Hola! Puedes editar el tamaño del BoxCollider desde el inspector de Unity. Hay un botón que habilita la edición y luego lo puedes modificar en la escena como si se tratase de una caja en Photoshop. Un saludo!

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

    ¿soy el único que tiene un bug que simplemente, por ejemplo hago el primer o salto o el doble salto y no puede saltar mas? ¿alguien sabe como puedo solucionarlo?

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

      Aun necesitas ayuda?

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

      a mi directamente ya no me deja hacer el primer salto

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

    Hola, bastante tarde la pregunta pero hace poco comencé a ver tus videos, cuando el personaje salta hace el boble salto, pero si llega a alguna parte como el techo del nivel o una plataforma flotante, puedo saltar infinitamente en el techo, creo que es por el boxcollider que detecta el techo como suelo y produce ese efecto, ¿Se puede solucionar?

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

      Cambia la Collision Detection de "Discrete" a "Continous" del RigidBody 2D del Personaje

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

      Hermano, eres un grande, no se exactamente el porque funciona, pero lo hace, asi que gracias

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

    No logro hacer funcionar correctamente la comprobación de si está en el suelo. Me arroja falsos positivos que provocan diversos bugs en el salto: a veces permite triple y hasta cuádruple salto de forma aleatoria, si te pegas a las paredes permite saltos infinitos, etc.
    Pero lo más preocupante es que al llegar al vídeo del slime, no funciona la parte de empujarte lejos del enemigo, nada más darte el impulso (y estando en el aire) la función EstaEnSuelo devuelve un falso positivo y me devuelve a puedeMoverse=true :(
    He vuelto a repasar los boxcolliders del personaje, la capa suelo, todo... y todo está bien.
    Lo único, estoy en unity 2022 no sé si habrá cambiado algo del procesamiento de físicas o colisiones.

    • @victorvillegas2325
      @victorvillegas2325 6 місяців тому

      A mi también me está pasando lo del salto caminando contra una pared. Con un Debug.Log pude ver que no siempre se reduce el salto máximo y creo que es por el raycast que es con un box

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

    copie el código igual pero me sale...Assets\Scripts\Character_control.cs(26,10): error CS0161: 'CharacterControl.EstaEnSuelo()': not all code paths return a value... no se porq puede ser

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

    Al utilizar fisicas no habria que usar fixedUpdate?

  • @Lionelmegacalidad
    @Lionelmegacalidad 8 місяців тому

    esta bueno gracias el tercer "bug" para mi no es un bug por que quiero hacer un Megaman X

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

    Hola Rocket, de verdad necesito tu ayuda tengo un error y no se como arreglarlo

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

      Hola! Puedes mandarme tu código a través del formulario de contacto de mi página web www.rocketjam.dev/contacto así le puedo echar un ojo e intentar ayudarte. Un saludo!

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

    El primero en comentar jeje
    Una cosa podras explocar como hacer que si tienes otro tipo de arma quite mas vida o se tompa mas rapido ?

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

      Explicar* rompa* tipo los comandos

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

      Armas con distintos stats? Suena interesante, me lo apunto :)

  • @parlito_26
    @parlito_26 4 місяці тому

    Tengo un problema, hice todo igual y anda todo genial, pero cuando camino aveces el personaje se queda pillado y tengo que saltar para que siga caminando 😢

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

    Me pasa que cuando realizo los dos saltos ya despues no puedo saltar mas
    El codigo es este:
    public class Character_controller : MonoBehaviour
    {
    public float Velocidad;
    public float Fuerza_del_salto;
    public int SaltosMaximos;
    private new Rigidbody2D rigidbody;
    private bool mirando_derecha;
    private BoxCollider2D Boxcollider;
    private LayerMask Capasuelo;
    private int SaltosRestantes;
    // Start is called before the first frame update
    void Start()
    {
    Boxcollider = GetComponent();
    rigidbody = GetComponent();
    SaltosRestantes = SaltosMaximos;
    }
    // Update is called once per frame
    void Update()
    {
    movimiento();
    Salto();
    }
    void movimiento(){
    float Input_movimiento = Input.GetAxis("Horizontal");
    rigidbody.velocity = new Vector2 (Input_movimiento * Velocidad, rigidbody.velocity.y);
    Gestionar_posicion(Input_movimiento);
    }
    bool Estar_en_suelo()
    {
    RaycastHit2D raycasthit = Physics2D.BoxCast(Boxcollider.bounds.center, new Vector2 (Boxcollider.bounds.size.x,Boxcollider.bounds.size.y), 0f, Vector2.down, 0.2f, Capasuelo);
    return raycasthit.collider != null;
    }
    void Salto(){
    if (Input.GetKeyDown(KeyCode.Space) && SaltosRestantes > 0){
    SaltosRestantes--;
    rigidbody.velocity = new Vector2(rigidbody.velocity.x, 0f);
    rigidbody.AddForce(Vector2.up*Fuerza_del_salto, ForceMode2D.Impulse);

    }
    if(Estar_en_suelo()){
    SaltosRestantes = SaltosMaximos;
    }
    }
    void Gestionar_posicion (float Input_movimiento){
    if ((mirando_derecha == true && Input_movimiento > 0) || (mirando_derecha == false && Input_movimiento < 0) ){
    mirando_derecha = !mirando_derecha;
    transform.localScale = new Vector2(-transform.localScale.x, transform.localScale.y);
    }
    }
    }

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

      Hola, lo pudiste resolver? la verdad a mi me pasa lo mismo y no se que hacer :,(

    • @JTgamer-zgd1
      @JTgamer-zgd1 10 місяців тому

      asegúrate de que en capa suelo este la capa "suelo". de lo contrario no te dejara volver a saltar

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

    holaaa...
    ya realize el codigo y sigue saltando muchas veces y no se que aser mando mi codigo
    public class mover : MonoBehaviour
    {
    public float velocidad;
    public float fuerzaSalto;
    public LayerMask capasuelo;
    private BoxCollider2D boxCollider;
    private Rigidbody2D RigidBody;
    private bool mirandoDerecha = true;
    private void Start()
    {
    RigidBody = GetComponent();
    boxCollider = GetComponent();
    }
    // Update is called once per frame
    void Update()
    {
    ProcesarMovimiento();
    prosesarsalto();
    }
    bool EstaEnElSuelo()
    {
    RaycastHit2D raycastHit= Physics2D.BoxCast(boxCollider.bounds.center, new Vector2( boxCollider.bounds.size.x-0.1f,boxCollider.bounds.size.y-0.1f),0f ,Vector2.down,0.2f,capasuelo);
    return raycastHit . collider != null;
    }
    void prosesarsalto()
    {
    if( Input.GetKeyDown(KeyCode. Space ) && EstaEnElSuelo ( ) )
    {
    RigidBody.AddForce( Vector2.up*fuerzaSalto,ForceMode2D.Impulse);
    }
    }
    void ProcesarMovimiento()
    {
    float inputMovimiento = Input.GetAxis("Horizontal");

    RigidBody.velocity = new Vector2(inputMovimiento * velocidad, RigidBody.velocity.y);
    GestionarOrientacion(inputMovimiento);
    }
    void GestionarOrientacion(float inputmovimiento)
    {
    //Si se cumple condicióm
    if ((mirandoDerecha == true && inputmovimiento < 0) || (mirandoDerecha == false && inputmovimiento > 0))
    {
    //Ejecutar codigo de volteado
    mirandoDerecha = !mirandoDerecha;
    transform.localScale = new Vector2(-transform.localScale.x, transform.localScale.y);
    }
    }
    }

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

      me pasa lo mismo si lo lograste resolver me dices? es que estoy en las mismas

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

      @@Raged0riginal yo igual y no se como solucionar

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

    el código esta bien pero igual sigo saltando jaja ya borre el código, lo volví a escribir y sigue igual, tratare mañana de ver si lo logro solucionar o usare el código de salto de alguien mas, si es que funciona o tratare de escribirlo por mi cuenta. les aviso cuando lo logre solucionar 😊😊😊😊

  • @shukurekvideojuegos7558
    @shukurekvideojuegos7558 2 роки тому +2

    ¿Cómo ago para que mi personaje no salga volando?

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

    tutorial muy bueno, pero a veces me da un error que dice: NullReference, algo asi, y no se porque me da ese error

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

      Buenas! Asegúrate de que tienes todas las variables públicas asignadas desde el inspector.
      Un saludo!

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

    Una pregunta, como has puesto el desigual (el igual con una raya en medio)

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

      Se escribe != a mi me sale el símbolo del igual con una raya en medio por la fuente que tengo configurada. Un saludo!

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

    Tiren paro me quede en el segundo 11:54 y mi codigo esta igual, pero a mi da error y pone "error CS0161: 'PlayerMove.EstaEnSuelo()': not all code paths return a value"

  • @josegabrielvargaspetrosino1341
    @josegabrielvargaspetrosino1341 6 місяців тому

    Hola, que tal? No se si responderas por el tiempo que tiene el video pero por si acaso comento, tengo un detalle que hice todo al pide de la letra como el video pero el personaje no salta, y eso empezó a suceder cuando agregre el codigo de box.cast para que solo realizara saltos cuando hicers contanto en el suele. Tambien hice layer y suelo @RocketJam

    • @Chiefjony
      @Chiefjony 4 місяці тому

      Yo tenia el mismo error, pense que hice todo igual al video, pero me olvide de poner el "boxCollider = GetComponent();" en el "void Start()"

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

    Mi personaje cuando salta y toca con un bloque se queda como trepado o pegado a ese bloque en vertical o en el aire, y la verdad no se porque pasa eso

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

    tengo un problema que no lo puedo resolver de niguna forma, cuando paso la variable a capaSuelo); y lo guardo, en Unity no me aparece para seleccionar la capa y lo volvi a reescribir otra vez al script y no consigo que aparezca

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

    Por alguna razón, terminé de ver el video unas 3 veces y sigo sin poder saltar en mi juego, ya revisé todo el código y ya hice todo lo que hiciste en el video y ahora no puedo saltar ni una sola vez, antes podía muchísimas veces, ahora no, ayuda, por favor.
    Código:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class player : MonoBehaviour
    {
    public float fuerzaSalto;
    public float Velocidad;
    public int saltosMaximos;
    public LayerMask capaSuelo;
    private bool mirandoDerecha = true;
    private Rigidbody2D personajeRigid;
    private BoxCollider2D boxCollider;
    private Collider2D personajeCollider;
    private float saltosRestantes;
    // Start is called before the first frame update
    private void Start()
    {
    personajeRigid = GetComponent();
    boxCollider = GetComponent();
    saltosRestantes = saltosMaximos;
    }
    // Update is called once per frame
    void Update()
    {
    moverPersonaje();
    salto();
    }
    bool EstaEnSuelo()
    {
    RaycastHit2D raycastHit = Physics2D.BoxCast(boxCollider.bounds.center, new Vector2(boxCollider.bounds.size.x, boxCollider.bounds.size.y), 0f, Vector2.down, 0.2f, capaSuelo);
    return raycastHit.collider != null;
    }
    void moverPersonaje()
    {
    float inputMovimiento = Input.GetAxis("Horizontal");
    personajeRigid.velocity = new Vector2(inputMovimiento * Velocidad, personajeRigid.velocity.y);
    GestionarOrientacion(inputMovimiento);
    }
    void GestionarOrientacion(float inputMovimiento)
    {
    if( (mirandoDerecha == true && inputMovimiento < 0) || (mirandoDerecha == false && inputMovimiento > 0))
    {
    mirandoDerecha = !mirandoDerecha;
    transform.localScale = new Vector2(-transform.localScale.x, transform.localScale.y);
    }
    }
    void salto ()
    {
    if (EstaEnSuelo())
    {
    saltosRestantes = saltosMaximos;
    }
    if (Input.GetKeyDown(KeyCode.Space) && saltosRestantes > 0)
    {
    saltosRestantes--;
    personajeRigid.velocity = new Vector2(personajeRigid.velocity.x, 0f);
    personajeRigid.AddForce(Vector2.up * fuerzaSalto, ForceMode2D.Impulse);
    }
    }
    }

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

      Pudiste solucionarlo?

    • @Joshua-pq6tv
      @Joshua-pq6tv 2 роки тому

      En el scrip no hay problema, ummm le diste valor del saltos maximos en el inspector del personaje, umm en tu caso player Scrip y le atribuiste la capa suelo, que creaste de la plataforma? creo que de hay parte tu problema , codigo no es, suerte

    • @user-ki2bv6nn2g
      @user-ki2bv6nn2g 2 роки тому

      Intenta reiniciar el editor de unity capaz que funcione

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

    bro hola una pregunta puedes poner lo de programacion para que saltes en un mensaje?

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

    buenass, una consulta, como se hace en visual studio el = tachado que hace rocket jam en el minuto 12:31? Saludos!!!

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

      Ese creo que es el operador de diferencia `!=` el cual aparentemente el tema de Visual Studio que usa rocket jam seguramente lo cambia para que se vea así

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

    Realmente se necesita tanto código sólo para saltar y no se puede utilizar un if?

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

    12:33 como se pone el igual tachado?

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

    cuando le doy a play mi personaje sale volando hacia arriba

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

    yeeeey

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

    Hola, no me aparece el physics Material 2D, solo me aparece el normal physics Material, por favor ayudame

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

    tengo el problema que los saltos no se me resetean al tocar el suelo y que cuando se acaba sigue saltando igual hasta que no toque el suelo que hice mal? llevo 2 horas buscando
    sing System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class CharacterController : MonoBehaviour
    {
    public LayerMask capasuelo;
    public float velocidad;
    public float fuerzaSalto;
    public int saltoMaximos;
    private Rigidbody2D rigidbody;
    private bool mirandoDerecha = true;
    private BoxCollider2D boxCollider;
    private int saltoRestantes;
    private void Start()
    {
    rigidbody = GetComponent();
    boxCollider = GetComponent();
    saltoRestantes = saltoMaximos;
    }
    // Update is called once per frame
    void Update()
    {
    ProcesarMovimiento();
    ProcesarSalto();
    }
    bool EstaenSuelo()
    {
    RaycastHit2D raycastHit = Physics2D.BoxCast(boxCollider.bounds.center, new Vector2(boxCollider.bounds.size.x, boxCollider.bounds.size.y), 0f, Vector2.down, 0.2f, capasuelo);
    return raycastHit.collider != null;
    }
    void ProcesarSalto()
    {
    if (EstaenSuelo())
    {
    saltoRestantes = saltoMaximos;
    }
    if (Input.GetKeyDown(KeyCode.Space) && saltoRestantes > 0)
    {
    saltoMaximos--;
    rigidbody.velocity = new Vector2(rigidbody.velocity.x, 0f);
    rigidbody.AddForce(Vector2.up * fuerzaSalto, ForceMode2D.Impulse);
    }
    }
    void ProcesarMovimiento()
    {
    // Logica de movimiento.
    float inputMovimiento = Input.GetAxis("Horizontal");
    rigidbody.velocity = new Vector2(inputMovimiento * velocidad, rigidbody.velocity.y);
    GestionarOrientacion(inputMovimiento);
    }
    void GestionarOrientacion(float inputMovimiento)
    {
    //Si se cumple condicion
    if((mirandoDerecha == true && inputMovimiento < 0) || (mirandoDerecha == false && inputMovimiento > 0))
    {
    //Ejecutar codigo de volteado
    mirandoDerecha = !mirandoDerecha;
    transform.localScale = new Vector2(-transform.localScale.x, transform.localScale.y);
    }

    }
    }

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

      Ya lo resolviste?

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

      @@Gabo_CG creo que no

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

    Chale en dos tutoriales y de dos formas distintas he probado, pero el personaje nomás no salta, solo se mueve hacia los lados

  • @random-fh5ke
    @random-fh5ke Рік тому +2

    a alguien también le pasa que cuando le da a saltar en vez de 2 saltos puede hacer 3?

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

      A mí me pasaba, lo solucione ajustando la distancia de la caja(el 4to parámetro del método BoxCast), ya que para mí caso 0.2 era mucho

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

      @@jevijarko yo pense q tambien podria ser eso y le fui ajustando pero llego el punto en q ya estando en el suelo no me restauraba los saltos como si aun estuviera en el aire y pense q no era eso...

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

    Hola que extension usas en vs para que te autocorrija los errores o que te autocomplete las palabras

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

      mira el video de alva majo de problemas habituales con unity, o algo haci de llamaba el video

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

    Alguien ayuda:
    En la parte de: "return raycastHit.collider != null;" me dice que raycastHit no existe y tampoco me deja poner "bool EstarEnSuelo()"

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

      Hola ya encontraste la solución? Porque a mi me aparece lo mismo y tube que borrar todo y escribir de nuevo, pero igual me salta eso, y no se como solucionarlo

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

      @@pacojc1897 simplemente ve a la descripcion del video, ahi esta para descargar todo el codigo

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

    ALGUIEN ME PUEDE DECIR PORQUE EL PERSONAJE NO PUEDE SALTAR?
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class script : MonoBehaviour
    {
    public float velocidad;
    public float fuerzaSalto;
    public float saltosMaximos;
    public LayerMask capaSuelo;
    private Rigidbody2D rigidbody;
    private BoxCollider2D boxCollider;
    private bool MirandoDerecha = true;
    private float saltosRestantes;

    private void Start()
    {
    rigidbody = GetComponent();
    boxCollider = GetComponent();
    saltosRestantes = saltosMaximos;

    }
    // Update is called once per frame
    void Update()
    {
    ProcesarMovimiento();
    ProcesarSalto();
    }
    bool EstaEnSuelo()
    {
    RaycastHit2D raycastHit = Physics2D.BoxCast(boxCollider.bounds.center, new Vector2(boxCollider.bounds.size.x, boxCollider.bounds.size.y), 0f, Vector2.down, 0.2f, capaSuelo);
    return raycastHit.collider != null;
    }
    void ProcesarSalto()
    {
    if(EstaEnSuelo())
    {
    saltosRestantes = saltosMaximos;
    }
    if (Input.GetKeyDown(KeyCode.Space) && saltosRestantes > 0)
    {
    saltosRestantes = saltosRestantes -1;
    rigidbody.AddForce(Vector2.up * fuerzaSalto, ForceMode2D.Impulse);
    }
    }
    void ProcesarMovimiento()
    {
    //Logica de movimiento
    float inputMovimiento = Input.GetAxis("Horizontal");
    rigidbody.velocity = new Vector2(inputMovimiento * velocidad, rigidbody.velocity.y);
    GestionarOrientacion(inputMovimiento);
    }
    void GestionarOrientacion(float inputMovimiento)
    {
    //Si cumple condicion
    if((MirandoDerecha == true && inputMovimiento < 0) || (MirandoDerecha == false && inputMovimiento > 0))
    {
    //Ejecutar codigo volteado
    MirandoDerecha = !MirandoDerecha;
    transform.localScale = new Vector2(-transform.localScale.x, transform.localScale.y);
    }


    }
    }

    • @JTgamer-zgd1
      @JTgamer-zgd1 11 місяців тому

      verifica la gravedad, masa y fuerza de salto en el script del personaje en unity

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

    Buenas tengo un problema que siempre me hace un salto de más y no puedo poner que solo haga uno

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

    Ayudaa, termine de escribir el codigo, pero me sale una advertencia que dice "Argumment 6: cannot from "float" to "int" por favor ayudaaa

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

    el personaje, al colisionar con las paredes también recupera ese doble salto, me gustaría que solo tenga la posibilidad de recuperar los saltos restantes solo cuando toca el suelo...

    • @RocketJam
      @RocketJam  3 роки тому +3

      Puedes dibujar los tiles de la pared y del suelo en distintas capas y ponerles la etiqueta de Suelo solo a los del suelo. Así el personaje solo recuperará los saltos al tocar el suelo.
      Un saludo!

    • @Joshua-pq6tv
      @Joshua-pq6tv 2 роки тому +2

      @@RocketJam pero cuando coliciona por debajo de un bloque flotante ,recupero el maximo antes tocar piso y se hace infinito por otro lado te felicito, buen temple para explicar Gracias y no dejes de subir videos

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

    Assets\scrits\personaje.cs(28,40): error CS1003: Syntax error, ',' expected
    alguien sabe como solucionarlo?

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

    hola! espero que puedas responderme pero sabes que me da un error cuando termino todo el codigo de este video, me queda en rojoEstaEnSuelo y no me deja hacer nada despues en unity, espero que tengas una respuesta, gracias! ya me suscribi y le di like a todos los videos, estoy siguiendolo desde el inicio.

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

      estoy en el mismo dilema, sin contar que el símbolo es distinto no lo reconoce como valido.

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

      @@indecid sabes que lo solucione de alguna manera no sé cómo exactamente jajaja pero después te paso el código

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

      @@maikondemaik jajaja no te preocupes, ya lo solucioné. más abajo otro usuario, pone que el equivalente seria !=, Y yo quede con cara de plato.

  • @victorvillegas2325
    @victorvillegas2325 6 місяців тому

    Hola, me puedes ayudar?
    A veces no me resta un salto

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

    a mi no me funciona no el salto , me sale que la linea donde dice : rigidBody.velocity = new Vector2(); esta mal pero esta exactamente igual
    :(

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

    Y para colocarle una animación de salto?