Este hombre es increible, esta haciendo realidad mi sueño de aprender a programar 👏👏👏
@urielmondragon75013 жыл бұрын
Hermano lo repito excelente trabajo con tu contenido
@StivenIndieDev Жыл бұрын
🎉🎉 me encantan tus video amigo muy explicas muy bien.
@javiernicolasuarezmamani6333 жыл бұрын
gracias amigo, un saludo desde peru...
@javiernicolasuarezmamani6333 жыл бұрын
me ayudo mucho y me dio idea para mi, juego
@BravePixelG3 жыл бұрын
Me alegra muchísimo que te guste el contenido y que te inspire a crear tus propios juegos, un gran saludo.
@ianvallejo-px8hy Жыл бұрын
Muchas gracias amigo me re sirvio, voy a seguir viendo tus vídeos.
@jaironieto5018 Жыл бұрын
excelente hermano, contenido de valor muchas gracias, me suscribo
@lolos201979 Жыл бұрын
Gracias por compartir, me hace falta para un enemigo volador jajaj 👌
@Masitx993 жыл бұрын
Saludo hermano desde Rep. Dominicana
@BravePixelG3 жыл бұрын
Un gran saludo, espero te sea muy útil el contenido.
@Masitx993 жыл бұрын
@@BravePixelG la verdad que si
@elheredero_2 жыл бұрын
Muy buen video, justo explicas lo que buscaba :)
@hectorromero99413 жыл бұрын
Excelente tutorial.
@ang10059 күн бұрын
Hola muchas gracias por toda la ayuda que brindas con los videos, tengo una duda, como podria hacer para que cuando el personaje vaya hacia un pnto, su rotacion cambie en funcion del punto al que va, tipo que si va hacia un punto mas a la derecha el sprite rote hasta que apunte directo al punto
@samuelalvarez76312 жыл бұрын
eres una leyenda🙏
@nachi1553 Жыл бұрын
Bro y como hago si tengo cuantro animaciones (Arriba, abajo, derecha, izquierda)?
@makako246811 ай бұрын
me dice error en la linea 9 ( [SerializeField] private float distanciaMinima)por favor que alguien me diga que tengo mal que estoy perdiendo la cabeza : using System.Collections; using System.Collections.Generic; using UnityEngine; public class patrullar : MonoBehaviour { [SerializeField] private float velocidadMovimiento; [SerializeField] private Transform[] puntosMovimiento [SerializeField] private float distanciaMinima; private int numeroAleatorio; private SpriteRenderer spriteRenderer; private void Start(){ numeroAleatorio = Random.Range(0, puntosMovimiento.Length); spriteRenderer = GetComponent(); girar(); } private void Update() { transform.position = Vector2.MoveTowards(transform.position, puntosMovimiento[numeroAleatorio].position, velocidadMovimiento * Time.deltatime); if(Vector2.Distance(transform.position, puntosMovimiento[numeroAleatorio].position) < distanciaMinima) { numeroAleatorio = Random.Range(0, puntosMovimiento.Length); girar(); } } private void girar(){ if(transform.position.x
@BravePixelG11 ай бұрын
Hola, tienes 3 errores en el código, el primero está en la línea en la que declaras los puntos de movimiento al inicio, te hace falta un punto y coma al final, en la línea dentro del start en donde tomas el spriteRenderer tienes mal escrito lo que va dentro del GetComponent, debe ser SpriteRenderer con mayúscula en la "S", y en la lines donde cambiamos la posición del transform dentro del update tienes mal escrito Time.deltaTime, te falta una mayúscula en la T de deltaTime
@makako246811 ай бұрын
Muchísimas gracias
@dionalrodrigoandradevelasc84332 жыл бұрын
excelente muy bien explicado...tengo unas dudas con mi juego dondeme puedo comunicar?
@BravePixelG2 жыл бұрын
Hola, si es una pregunta concreta puedes hacerlo por este medio, pero si es como tal una asesoría no podemos brindarla como tal por temas de tiempo.
@Josemug982 жыл бұрын
Amigo, mi personaje hace el giro pero al revés, cuando va hacia la derecha, el personaje va mirando hacia la izquierda. ¿Qué será?
@BravePixelG2 жыл бұрын
Puede ser por la manera en la que inicia tu personaje, si está mirando en sentido contrario al del video puedes cambiar la manera en la que cambia el booleano en el método de girar para que lo haga en la dirección que necesitas
@Josemug982 жыл бұрын
@@BravePixelG Nada parce, lo curioso es que tengo 3 personajes con el mismo Script, cambié los Bool y solo con 2 funciona, con el último nada
@BravePixelG2 жыл бұрын
@@Josemug98 algo que puedes intentar para solucionar este problema es usar un sistema similar al que hicimos en un video del canal donde le damos la información directamente de la dirección en la que está mirando y luego lo rotamos según esa dirección, te lo dejo aquí abajo: kzbin.info/www/bejne/jqK2enuggdSZec0
@nicovalenvilla38102 жыл бұрын
se puede hacer que un waypoint sea al jugador y juando este lo alcance siga el seguimiento punto?
@BravePixelG2 жыл бұрын
Claro, puedes tomar la posición del jugador con el componente transform y agregarlo, aquí te dejo un video del canal donde hicimos un funcionamiento un tanto similar: kzbin.info/www/bejne/aJSniXeLpNmjj6s
@Mastiphall Жыл бұрын
Perfecto, pero como podria hacer esto en 3D?
@vintogd51393 жыл бұрын
Excelente tutorial, pero tengo un problema, cuando guardo el prefab del enemigo que sigue los puntos en una carpeta assent dentro de unity, los puntos de movimiento del script se eliminan y no se pueden volver agregar al menos que se coloque el enemigo en el escenario. Esto me afecta ya qué al generar el enemigo con un generador, el mismo no se mueve...
@BravePixelG3 жыл бұрын
Debes generar un objeto en el cual dejes como hijos tanto los puntos como el personaje y a ese objeto lo conviertes en un prefab
@vintogd51393 жыл бұрын
@@BravePixelG Ok excelente, solucionado el problema! Muchas gracias, nuevo sub, revisaré los demás tutoriales ;)
@santiagosolis4203 жыл бұрын
ayuda lo hago igual pero ignora el los puntos de movimiento baja o sube sin parar using System.Collections; using System.Collections.Generic; using UnityEngine; public class LogicaArquero : MonoBehaviour { [SerializeField] private float velocidadMovimiento; [SerializeField] private Transform[] puntosMovimiento; [SerializeField] private float distanciaMinima; private int siguientePaso; private SpriteRenderer spriteRenderer; private void Start() { spriteRenderer = GetComponent(); Girar(); } private void Update() { transform.position = Vector3.MoveTowards(transform.position, puntosMovimiento[siguientePaso].position, velocidadMovimiento * Time.deltaTime); if (Vector3.Distance(transform.position, puntosMovimiento[siguientePaso].position) < distanciaMinima) { siguientePaso += 1; if(siguientePaso>= puntosMovimiento.Length) { siguientePaso = 0; } Girar(); } } private void Girar() { if (transform.position.x < puntosMovimiento[siguientePaso].position.x) { spriteRenderer.flipX = true; } else { spriteRenderer.flipX = false; } } }
@santiagosolis4203 жыл бұрын
solo necesito que suba y baje
@BravePixelG3 жыл бұрын
@@santiagosolis420 No sé si entendí bien tu problema, pero puede ser por usar el vector 3 en lugar del vector 2.
@kleynkamahura39232 жыл бұрын
muy buen video amigo pero tengo un problema y es que el sprite al llegar al punto no cambia su direccion en x hose que no me esta validando el flip alguna idea codigo por si es necesario: using System.Collections; using System.Collections.Generic; using UnityEngine; public class patrullar : MonoBehaviour { [SerializeField] private float velocidadMovimiento; [SerializeField] private Transform[] puntosMovimiento; [SerializeField] private float distanciaMovimiento; private int numeroAleatorio; private SpriteRenderer spriteRenderer; void Start() { numeroAleatorio = Random.Range(0, puntosMovimiento.Length); spriteRenderer = GetComponent(); Girar(); } void Update() { transform.position = Vector2.MoveTowards(transform.position, puntosMovimiento[numeroAleatorio].position, velocidadMovimiento * Time.deltaTime); if (Vector2.Distance(transform.position, puntosMovimiento[numeroAleatorio].position) < distanciaMovimiento) { numeroAleatorio = Random.Range(0, puntosMovimiento.Length); //Girar } } private void Girar(){ if (transform.position.x < puntosMovimiento[numeroAleatorio].position.x) { spriteRenderer.flipX = true; } else { spriteRenderer.flipX = false; } } }
@BravePixelG2 жыл бұрын
Te falta llamar al método de girar dentro de la condición
@kleynkamahura39232 жыл бұрын
@@BravePixelG o claro vi puse girar en el estado star y no lo puse en el estado update por eso no funcionaba gracias por su ayuda
@LasBoludecesDeSebas2 жыл бұрын
@@BravePixelG Yo lo tengo igual que él pero sólo que sí llamé al método girar en ambas ocaciones y aún así no me gira el sprite
@CanalGenericojsjs2 жыл бұрын
Oye bro sabes como hacer movimiento aleatorio en top down
@BravePixelG2 жыл бұрын
Puedes hacerlo de la misma manera, si tienes los puntos en el espacio se puede mover al que necesita, lo único que deberías cambiar es la parte visual, depende de que es lo que necesites hacer, pero como tal el movimiento puede ser igual
@ZotryHung Жыл бұрын
Porque mis sprites tiemblan?
@alexv3604 Жыл бұрын
me pasó lo mismo, yo lo solucione subiendo un poco los puntos de movimiento, porque si los pegas al suelo se intentará meter en la caja de colisiones, ergo, comenzará a temblar
@GeoDash Жыл бұрын
Es un problema llamado "2D Sprite Jitters", es un problema complejo que ni yo he podido solucionar, pero tiene que ver con los tipos de update, Update, FixedUpdate, LaterUpdate, SmartUpdate, etc
@irgato74082 жыл бұрын
Hola tengo un problema y no se de que manera arreglarlo me pasan estos errores: IndexOutOfRangeException: Index was outside the bounds of the array. Patrulla.Girar () (at Assets/Scrips/Patrulla.cs:35) Patrulla.Start () (at Assets/Scrips/Patrulla.cs:18) y es este código: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Patrulla : MonoBehaviour { [SerializeField] private float velocidadMovimiento; [SerializeField] private Transform[] puntosMovimiento; [SerializeField] private float distanciaMinima; private int siguientePaso; private SpriteRenderer spriteRenderer; private void Start() { spriteRenderer = GetComponent(); Girar(); } private void Update() { transform.position = Vector2.MoveTowards(transform.position, puntosMovimiento[siguientePaso].position, velocidadMovimiento * Time.deltaTime); if (Vector2.Distance(transform.position, puntosMovimiento[siguientePaso].position) < distanciaMinima) { siguientePaso += 1; if(siguientePaso>= puntosMovimiento.Length) { siguientePaso = 0; } Girar(); } } private void Girar() { if (transform.position.x < puntosMovimiento[siguientePaso].position.x) { spriteRenderer.flipX = true; } else { spriteRenderer.flipX = false; } } }
@BravePixelG2 жыл бұрын
El error dice que tu index se sale de los límites de la lista, entonces es posible que la variable siguiente paso, se esté pasando del número máximo de objetos, puede ser por la inicialización de la variable, intenta colocarla en 0 como en el video
@irgato74082 жыл бұрын
@@BravePixelG Gracias me lo pase por alto supongo que es lo malo de llevar programando desde las 9 de la mañana anterior XD y unna cosa este codigo de patrulla sirve para diferentes enemigos no?
@BravePixelG2 жыл бұрын
@@irgato7408 Si, lo puedes usar para patrullar puntos en muchos tipos de enemigos, solo es adaptarlo un poco si tu enemigo debe tener un comportamiento un tanto diferente como en lo visual, por ejemplo.