Asignar todo el vector de velocity así hace que se ignore el valor en Y, dando la sensación que el enemigo ignora la gravedad en algunos casos. Yo lo probé de esta manera
Y asi la velocidad toma en cuenta el movimiento lateral que se le está dando sin alterar la caida.
Buen aporte, cuando se usa Vector2.right solo funcionaria en un mapa plano.
Genial, en mi caso se me ocurrió agregarle al enemigo un material con bounciness para que al caerle encima haga rebotar a mi personaje al estilo Mario.
Yo opté por agregarle una variable pública de vida y en la colisión del juegador hacer que su vida sea 0
De esta manera puedo hacer enemigos que pidan 3 saltos en su cabeza >:D
(Decidí cambiar el código a último momento de “life = 0” a “life -=1”, no está en la captura)
Yo hice el sistema de eliminación de enemigos distinto. Intenté adelantarme a las clases.
Lo que hice fue que la animación de muerte del enemigo redijera su escala y transformara su Colision 2d en un trigger. Con esto el enemigo cuando le salto se pone enano y se va por el suelo hasta el infinito.
Eso de matar enemigos al estilo de Mario si no lo sabía.
Hola! Una consulta sobre la animaciòn del Player. En PlayerMovement.cs en la lìnea
if (Input.GetAxis(“Horizontal”) == 0)
la subraya en rojo y me muestra un error
** “fix floating point numbers comparing. compare a difference with epsilon”**
¿còmo resuelvo esa comparación? Gracias
tienes que poner ‘< 0’ o ’ > 0’
Hay un error que cuando el personaje se encuentra en un terreno de bajada, el enemigo por estar en una posicion mas abajo muere al ser tocado por cualquier lado, lo solucione en parte con esto, pero no quedo del todo solucionado. :/
yo use itra forma para hacer que el enemigo de la vuelta creo que es un poco mas complicado pero tambien me sirvio jajaja
if (timeBeforeChange < Time.time)
{
La declare como public para que pueda ser llamada desde otro gameObject con la funcion SendMessage() , lo aplique en el script
del enemigo cuando el jugador le salta encima
Mi jugador y mi enemy no estan en el mismo sistema de coordenadas aparentemente. El 'y' de mi enemigo es menor que el del jugador desde el inicio. No se como cambiar esto
Tengo un problema con la animacion del enemigo, se mueve en en casi el mismo lugar y la animacion va muy rapido, pero la animacion vuelve a ser normal cuando coloco speed = 0. Pero no se deja demover por el ejeX. Nose que hacer.
Verifica la variable speed, que valor tiene y cuando la multiplicas por el valor negativo. También el delay, si es muy poquito la animación es rápida por lo que hace el efecto de que se mueve en el mismo lugar.
Para los nuevos como yo, realmente recomiendo colocar corchetes { en cada if, por que recuerden que estan haciendo codigo que posiblemente otras personas a su nivel o ustedes mismos lean el codigo, entonces es mejor llevar un buen orden para hacerlo facil de leer.
Excelente!
Tengo una duda, quiero crear muchos enemigos del mismo tipo, pero quiero que cada uno tenga un movimiento independiente (por ejemplo que un enemigo vaya a la izquierda y otro a la derecha), tendría que crear muchos scripts? o hay algún tipo de dato que me permita eso?
No se solucionaria cambiando la velocidad inicial de los distintos enemigos??;
No utilices la variable global Time.time, guarda el valor del tiempo en la que tu enemigo fue creado y utilizala para que cada uno empiece a caminar apenas aparece.
Si todos son creados al mismo tiempo utiliza un desface de tiempo con una función random para que cada personaje tenga un delay diferente o comience en un tiempo diferente.