Cómo tomar daño y hacer que el jugador retroceda en Unity

  Рет қаралды 17,596

BravePixelG

BravePixelG

Күн бұрын

Пікірлер: 78
@kenaymen
@kenaymen Жыл бұрын
Aplique este tutorial para hacer que el daño se efectue despues de una animacion de ataque, sinceramente que buen video
@emanueljonathanugartemerid7630
@emanueljonathanugartemerid7630 Жыл бұрын
Excelente explicaciones, he de confesar que al inicio cuando miraba sus tutoriales, me hacía enojar porque no lograba hacer sus pasos o los hacía rápido, para ese entonces era un embrión en unity , y pues ahora, me facilita un monton y enseña muchiisimo
@mixgyt
@mixgyt 2 жыл бұрын
Me encanta como simplifica las explicaciones y como el código que utilizas esta limpio y entendible. 10/10 Tutorial :)
@eduardozamoracolin1660
@eduardozamoracolin1660 8 ай бұрын
1:21 tengo una pregunta. Al poner en el script puntoGolpe me lo marca bien, pero cuando voy a unity y me golpeó con el enemigo me marca NullReferenceException al método de rebote y no se porque sucede
@BravePixelG
@BravePixelG 8 ай бұрын
Hola, es posible que te haga falta una referencia en alguno de tus scripts, por ejemplo, si te marca la línea donde se usa el Rigidbody es posible que no esté tomando este componente, es posible que en el script del combate del jugador en el método de tomar daño al llamar al método de rebote del movimiento del jugador genere el error porque puede que el script del movimiento no esté bien referenciado en el script, siempre que te salga un NullReferenceException debes revisar si el personaje está tomando las referencias a los scripts que usas, porque significa que está tratando de acceder a un método o propiedad de algo que no tiene referenciado.
@thinkthetoad7368
@thinkthetoad7368 2 жыл бұрын
Genial, justo lo que buscaba: bien explicado y ágil. 10/10
@free_sad437
@free_sad437 Жыл бұрын
muchas gracias no sabes de cuanta ayuda me fuiste desaíra darle un millón de likes a este video por desgracia solo puedo dar 1
@joelgoyo9240
@joelgoyo9240 Жыл бұрын
mi rebote solonfunciona en y pero no en x osea solo se mueve arriba ayuda por favor
@studioschris8233
@studioschris8233 2 жыл бұрын
Muchas gracias por compartir esta técnica, Amigo!! Me funcionó perfecto. Te doy mi like.
@diegogb1999
@diegogb1999 8 ай бұрын
Si el enemigo tiene un ataque como se haria para aplicar el mismo knockback effect? Ya que usa getContact pero el ataque lo hago con physics2D que no me permite usar ese metodo, ademas si intento que el ataque sea un gameObject hijo del enemigo para que vaya en posicion relativa a el tampoco me sirve porque se aplican tanto el onCollision del padre como del hijo
@juchhd174
@juchhd174 Жыл бұрын
buenas!, si quiero agregar este efecto pero a un enemigo como lo podria hacer?
@spamerdurooo5821
@spamerdurooo5821 7 ай бұрын
Cuando colisiono con el enemigo me rebota en x pero no en y solo me deslizo por el suelo, si me ayudan les agradezco
@leonoz3762
@leonoz3762 11 ай бұрын
Ayuda, hice todo tal cual y la animación solo se reproduce cuando estoy pegado a una pared o al suelo, cuando le quito el rebote ahi si se reproduce la animación, alguien sabe como solucionarlo?
@YasserJiménez-v4c
@YasserJiménez-v4c Жыл бұрын
Muy buen video, solo tengo un problema, al modificar los valores del rebote, es decir cambiar los valores para que no sea 10, 10; funciona bien al modificar el eje X, pero al modificar el eje Y (menor al valor 10), hace que luego del rebote el jugador cae y se desliza un poco por el piso, como lo soluciono?
@dionalrodrigoandradevelasc8433
@dionalrodrigoandradevelasc8433 9 ай бұрын
buenas tardes podrias crear un video donde el jugador se cubra con un escudo los ataques del enemigo?...excelentes explicaciones.
@danielbocanegrachmc7322
@danielbocanegrachmc7322 2 жыл бұрын
hola una pregunta, ¿como puedo combinar este tutorial con el de la animación de muerte del jugador?
@BravePixelG
@BravePixelG 2 жыл бұрын
Puedes agregar la animación de muerte del jugador como una salida a la animación de golpe, entonces se ejecutará después de hacer el retroceso, puedes agregar una condición a la salida de la animación para que se haga según la cantidad de vida o algún parámetro que necesites
@Alex-xy7nj
@Alex-xy7nj Жыл бұрын
Hola, amigo tengo un problema, si toco el enemigo al mismo tiempo que estoy corriendo el player se mueve en el aire hacia la dirección de la flecha que tenia presionada al momento de tocar al enemigo, yo desactivé los controles de movimiento por un tiempo despues de tocar al enemigo como tú hiciste en el video pero aun asi pasa, que sugieres
@AndreuTorres-g7x
@AndreuTorres-g7x 3 ай бұрын
Hola, tengo un pequeño problema. Cuando hice el Script del enemigo, el programa me dice que sale un error porque el método TomarDaño no copila dos argumentos. ¿Alguna ayuda, porfavor?
@BravePixelG
@BravePixelG 2 ай бұрын
Hola, el método de tomar daño que estamos usando en el video toma dos parámetros, la cantidad de daño y la posición del golpe, es posible que el método que tengas o el que estás llamando sea el que está arriba, el que solo toma un parámetro, debes revisar si el método que estás usando es el que creamos con los dos parámetros, tenemos dos métodos con el mismo nombre, pero con parámetros diferentes, a esto se le llama una sobrecarga, entonces puedes crear un método con un nombre diferente, pero con estos parámetros para que te funcione
@luisangelalvarez8447
@luisangelalvarez8447 Жыл бұрын
disculpa, por qué me sale error cuando utilizo estó?if (other.gameObject.CompareTag("Player") en la parte de other, dice que no existe, pero en donde lo debemos crear?
@alexv3604
@alexv3604 Жыл бұрын
vete al personaje y en el inspector, en la parte superior del todo aparecen las tags y los layers de ese objeto (el jugador en este caso). Ahí deberás crear en la tag una que se llame Player
@cristiancarrazana3131
@cristiancarrazana3131 2 жыл бұрын
ayuda hola estoy juntando los tutoriales y el de daño con los pinchos me baja la barra de vida y en este los enemigo no me bajan la barra de vida los enemigos tiene collisionEnter2D y los pinchos tiene le ontriggerEnter2D. que puedo hacer para que me funcione la barra de vida y el rebote gracias.
@BravePixelG
@BravePixelG 2 жыл бұрын
En el método de tomar daño debe estar el de cambiar la barra de vida, solo debes agregar la línea de código que hace este cambio en el de tomar daño
@cristiancarrazana3131
@cristiancarrazana3131 2 жыл бұрын
@@BravePixelG public void TomarDaño(float daño) { vida -= daño; barraDeVida.CambiarVidaActual(vida); if (vida
@cristiancarrazana3131
@cristiancarrazana3131 2 жыл бұрын
La vida el enemigo se la quita pero meda menos ejemplo -40 y sigue.pero no se me refleja en la barra de vida.
@cristiancarrazana3131
@cristiancarrazana3131 2 жыл бұрын
public void TomarDaño(float daño, Vector2 position) { vida -= daño; animator.SetTrigger("Golpe"); StartCoroutine(PerderControl()); StartCoroutine(DesactivarColision()); //perderControl movimientoJugador.Revote(position); } o en este ponerle un Detroy
@cristiancarrazana3131
@cristiancarrazana3131 2 жыл бұрын
hay lo arregle. public void TomarDaño(float daño, Vector2 position) { vida -= daño; barraDeVida.CambiarVidaActual(vida); animator.SetTrigger("Golpe"); StartCoroutine(PerderControl()); StartCoroutine(DesactivarColision()); //perderControl movimientoJugador.Revote(position); if (vida
@adrianmartinez9736
@adrianmartinez9736 2 жыл бұрын
muy buen video, mis apoyos
@gomademascarv9523
@gomademascarv9523 Жыл бұрын
Donde puedo conseguir el código?
@KRISZABTUTOS
@KRISZABTUTOS 2 жыл бұрын
Exelente 💪😉
@marklondon2241
@marklondon2241 Жыл бұрын
como puedo hacer que el jugador desaparezca cuando le pegan?
@michaelperex7889
@michaelperex7889 Жыл бұрын
hola, una duda. Combine esto con el disparar por prefats y todo esta bien pero quisiera saber como desabilitar la opcion de disparar cuando atacan a mi personaje. Que me recomienda.
@BravePixelG
@BravePixelG Жыл бұрын
Hola, puedes lograrlo de la misma manera que hicimos la restricción del movimiento, pero también lo colocas en la condición de disparo, entonces no podrá hacer ninguna de las dos acciones mientras esté tomando daño
@michaelperex7889
@michaelperex7889 Жыл бұрын
@@BravePixelG Muchas gracias, si me funciono. Soy fan
@CanalGenericojsjs
@CanalGenericojsjs 2 жыл бұрын
Bro por qué mi rebote solonfunciona en y pero poco en x osea solo se mueve arriba ayuda
@BravePixelG
@BravePixelG 2 жыл бұрын
Hola, es posible que en el momento de generar el cambio en la velocidad del personaje lo hace en ambos ejes, pero no estás limitando el movimiento en X cuando hace el contacto, entonces se cambia la velocidad en Y pero no en X, debes asegurarte de que las líneas que usamos para que el jugador no cambie el movimiento estén en el lugar correcto en tu script
@CanalGenericojsjs
@CanalGenericojsjs 2 жыл бұрын
@@BravePixelG lo vi 3 veces el video y todo esta igual xd
@jorgeponce5147
@jorgeponce5147 Жыл бұрын
@@CanalGenericojsjs Pudiste resolverlo? Me pasa lo mismo!
@jorgeponce5147
@jorgeponce5147 Жыл бұрын
Fijate si con el booleano restringís el movimiento en x tanto en el Update como en el FixedUpdate. A mi me funciono cuando coloque el booleano en esas dos lugares!
@emilianonavarroo1928
@emilianonavarroo1928 Жыл бұрын
@@jorgeponce5147 Como hiciste eso, yo tambien tengo el mismo problema
@darckclosmot
@darckclosmot Жыл бұрын
Ya tienes otro seguidor 😄
@jorgeponce5147
@jorgeponce5147 Жыл бұрын
Hola! muy buen video! tengo un inconveniente mi personaje solo se desplaza en el eje y que puede estar pasando. Rebota para arriba en pocas palabras!
@jorgeponce5147
@jorgeponce5147 Жыл бұрын
Ya lo logre me olvide de bloquear el movimiento en FixedUpdate 😅
@TheMaxcraft1
@TheMaxcraft1 2 жыл бұрын
GENIO!
@funfactory001
@funfactory001 2 жыл бұрын
excelentes tutoriales buena la informacion para completar se podra un tutorial de daño regulable por parte del enemigo en barra de vida(sugerencia) y gracias por tus tutoriales
@BravePixelG
@BravePixelG 2 жыл бұрын
Hola, cuando te refieres a la barra de vida es la del jugador o la del enemigo, porque ya tenemos una para el jugador y la del enemigo que esté sobre él la tenemos planeada, pero me gustaría saber si en tu sugerencia tienes algo diferente para poder tenerlo en cuenta.
@len3016
@len3016 2 жыл бұрын
Como debería hacer para que el jugador luego de perder toda su vida muera? Estoy probando con destroy(gameObject); y no me sirve
@BravePixelG
@BravePixelG 2 жыл бұрын
Hola, el método destroy debería funcionar, lo que debes ver es cual es el objeto que estás usando en el parámetro de este método, si lo estás llamando en el enemigo cuando colisiona debes tomar el parámetro de la colisión, que sería other.gameobject
@maverick3269
@maverick3269 2 жыл бұрын
Gracias Amigo muy buen video, sabes me ha pasado que en ocasiones el jugador pasa por el enemigo y no colisiona, sabes que podría ser, Gracias.
@BravePixelG
@BravePixelG 2 жыл бұрын
Hola, Si el error estaba antes de la implementación de este video puede ser por un problema en la detección de la colisión, en ocasiones pede ser que se hizo el método on Collision enter y sigues pegado al enemigo entonces no puede generar la colisión hasta que termine, también puede ser por el rigidbody en su detección de colisión, puedes tomarla como continúa, si es después de la implementación puede ser por el tiempo que desactiva la colisión, si lo tienes en un valor muy alto no detecta las colisiones hasta que se reactive el componente de la matriz de colisiones
@rubenrodriguez1576
@rubenrodriguez1576 2 жыл бұрын
Hola, como puedo hacer para combinar los 2 videos de dañar y tomar daño? Lo que quiero hacer es que si el enemigo colisiona conmigo, me quite vida y si yo salto encima de el lo mate. Gracias por tus videos, son de mucha ayuda.
@BravePixelG
@BravePixelG 2 жыл бұрын
Hola, puedes colocar una condición extra en el daño sobre el enemigo, en el momento que se detecta el golpe sobre el enemigo puedes colocar un else, que sea un contacto en otro lugar diferente del tope y colocar el daño al jugador
@rubenrodriguez1576
@rubenrodriguez1576 2 жыл бұрын
@@BravePixelG Gracias, me has salvado todo el proyecto con tus videos, se aprecia.
@CanalGenericojsjs
@CanalGenericojsjs 2 жыл бұрын
@@BravePixelG no entendí nada ayuda
@proewizzard8497
@proewizzard8497 Жыл бұрын
@@rubenrodriguez1576 pasaron 8meses de tu comentario pero bueno, cómo hiciste para solucionarlo? me podrías pasar el script si aún lo tienes? Gracias.
@GeoDash
@GeoDash Жыл бұрын
@@CanalGenericojsjs simplemente agrega un else en donde haces la condicion de Si el jugador pega arriba del enemigo
@leandroferrer1223
@leandroferrer1223 2 жыл бұрын
Muy buenos videos! me gustaría saber como hago para que, si el jugador muere, que el enemigo no nos pueda colisionar mas (por que me golpea hasta estando muerto). Gracias!!!
@BravePixelG
@BravePixelG 2 жыл бұрын
Si es solo por colisión puedes usar el mismo método que evita colisiones entre layers para que no pueda tocarlo, pero si es por un golpe diferente puedes manejar un booleano que diga si el jugador puede o no tomar daño o si sigue con vida para controlarlo de mejor manera
@leandroferrer1223
@leandroferrer1223 2 жыл бұрын
@@BravePixelG Muchas gracias!
@c3sar___633
@c3sar___633 2 жыл бұрын
Tremendo
@Vikingo-jv1wq
@Vikingo-jv1wq 2 жыл бұрын
Donde consigo al honguito?
@BravePixelG
@BravePixelG 2 жыл бұрын
Es el paquete de pixel adventure 2 en la asset store, te lo dejo aquí abajo: assetstore.unity.com/packages/2d/characters/pixel-adventure-2-155418
@Vikingo-jv1wq
@Vikingo-jv1wq 2 жыл бұрын
@@BravePixelG muchas gracias
@santiagoalbertohigueraniet8914
@santiagoalbertohigueraniet8914 2 жыл бұрын
Holaaa yo otra vez jajaj, es que tengo un fallo y cuando espicho al hongo yo tambien recibo daño :( como se puede solucionar??
@BravePixelG
@BravePixelG 2 жыл бұрын
Hola, Debes tener la manera en la que se identifica el contacto en la parte superior del enemigo para diferenciar el daño sobre el jugador o sobre el enemigo, entonces si no se cumple la condición del contacto en la parte superior puedes ejecutar el daño al jugador
@fastlionstudio1281
@fastlionstudio1281 Жыл бұрын
Hola espero que veas este comentario: tengo un problema, cuando el jugador choca con el enemigo, el enemigo no le hace nada, todo el código esta bien, ya le puse la etiqueta de jugador al Player, hice todo, ha y lo único que puedo decir es que mi enemigo tiene un rigidbody2D, no se si ese sea el problema pero bueno. Espero mucho su respuesta. Muchas gracias.
@BravePixelG
@BravePixelG Жыл бұрын
Hola, puede ser por la manera en la que llamas a la etiqueta, recuerda que debe tener mayúsculas y minúsculas idénticas, si no te sale ningún error en la consola puede ser porque no está registrando el contacto, para corregirlo puedes verificar que ambos objetos tengan su rigidbody y su colisionador, lo último que se me ocurre es que los componentes que tienes en tus objetos no sean 2D o que el método que llames no tenga el 2D en su nombre
@fastlionstudio1281
@fastlionstudio1281 Жыл бұрын
Muchas gracias de hecho, ya lo he resuelto, solo tenia que ver tu video de detección de colisiones y triggers. Ya con ese video me di cuenta de mis grandes errores. Te doy doble gracias, por ayudarme ahora, y en tu otro video que salvo bastante mi proyecto.
@benderinkman321
@benderinkman321 Жыл бұрын
Yo no entendí, lo hice todo bien, pero no hace nada, expliquen bien porfa, o tal vez sea porque mi personaje tiene capsule colider2d
@psychoraccoon
@psychoraccoon 2 жыл бұрын
Ayuda, segui los pasos al pie de la letra pero la animacion de daño solo se ejecuta cuando estoy tocando el piso, es decir, si toco al enemigo (en mi caso son pinchos), el jugador rebota y no lo puedo mover y cuando toca el piso, se reproduce la animacion de daño, que hice mal? :(
@BravePixelG
@BravePixelG 2 жыл бұрын
Hola, es posible que tengas la animación con la transición solo para ser ejecutada desde uno de los estados de correr o idle, si colocas la transición desde el estado que dice Any puedes tener el resultado del video
@CloudInBrain
@CloudInBrain Жыл бұрын
Hola, por si a alguien más le sirve, yo al añadir esto junto al tutorial de Crouch al tener 2 colliders y el tutorial de como tener cierto tiempo de invincibilidad, me pasaba que si el jugador se quedaba dentro del enemigo y ambos colliders tocaban al enemigo, hacía el doble de daño y si me quedaban 2 vidas y pasaba el bug, se bugueaba el respawn y luego no me podía mover, por lo que tuve que hacer que en el Script de daño al jugador, ignorara uno de los colliders, acá les dejo el código por si a alguien más le pasa y no sabe cómo resolver el problema: using System.Collections; using System.Collections.Generic; using UnityEngine; public class DañoJugador : MonoBehaviour { [SerializeField] private float daño; // Daño que se inflige al jugador private CapsuleCollider2D capsuleCollider2D; // Referencia al CapsuleCollider2D del objeto que contiene el script private void Start() { // Obtiene una referencia al CapsuleCollider2D del objeto que contiene el script capsuleCollider2D = GetComponent(); } private void OnCollisionEnter2D(Collision2D other) { if (other.gameObject.CompareTag("Player")) { // Obtiene una referencia al CapsuleCollider2D del jugador CapsuleCollider2D playerCapsuleCollider2D = other.gameObject.GetComponent(); // Ignora la colisión entre el CapsuleCollider2D del objeto que contiene el script y el CapsuleCollider2D del jugador Physics2D.IgnoreCollision(capsuleCollider2D, playerCapsuleCollider2D); // Inflige daño al jugador other.gameObject.GetComponent().TomarDaño(daño, other.GetContact(0).normal); } } } PD: Cabe recalcar que deben adaptar los colliders para el GameObject al que lo necesiten poner, por ejemplo a mis enemigos les tengo un CapsuleCollider2D pero si tienen unos pinchos en el suelo con un BoxCollider2D, deben hacer los respectivos cambios para ese GameObject
@spamerdurooo5821
@spamerdurooo5821 7 ай бұрын
Cuando colisiono con el enemigo me rebota en x pero no en y solo me deslizo por el suelo, si me ayudan les agradezco
@BravePixelG
@BravePixelG 7 ай бұрын
Hola, para la velocidad en Y debes colocarla tanto en el método de rebote del script del movimiento del jugador como el valor que se pone en el inspector, es posible que esté en 0 o no esté en el script, si este no es el problema puede que sea una línea de tu código que interfiera con este funcionamiento, si en algún punto de tu código modificas la velocidad en Y es posible que esté sobreescribiendo el funcionamiento de este método
Cómo hacer que nuestro personaje se agache en Unity
7:25
BravePixelG
Рет қаралды 4,4 М.
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 9 МЛН
[BEFORE vs AFTER] Incredibox Sprunki - Freaky Song
00:15
Horror Skunx 2
Рет қаралды 20 МЛН
3 años creando un juego en UNITY
10:04
Guinxu
Рет қаралды 289 М.
¿Qué juegos he hecho? + Links de descarga
16:00
Guinxu
Рет қаралды 1,1 МЛН
Cómo crear un enemigo que dispara en Unity
11:04
BravePixelG
Рет қаралды 6 М.
How Games Fake Water
22:52
Acerola
Рет қаралды 225 М.
choosing a game engine is easy, actually
15:08
samyam
Рет қаралды 614 М.