Cómo crear un personaje que patrulle puntos en Unity (Movimiento aleatorio y controlado)

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

BravePixelG

BravePixelG

Күн бұрын

Пікірлер: 48
@Cris_z_d
@Cris_z_d Жыл бұрын
Este hombre es increible, esta haciendo realidad mi sueño de aprender a programar 👏👏👏
@urielmondragon7501
@urielmondragon7501 3 жыл бұрын
Hermano lo repito excelente trabajo con tu contenido
@StivenIndieDev
@StivenIndieDev Жыл бұрын
🎉🎉 me encantan tus video amigo muy explicas muy bien.
@javiernicolasuarezmamani633
@javiernicolasuarezmamani633 3 жыл бұрын
gracias amigo, un saludo desde peru...
@javiernicolasuarezmamani633
@javiernicolasuarezmamani633 3 жыл бұрын
me ayudo mucho y me dio idea para mi, juego
@BravePixelG
@BravePixelG 3 жыл бұрын
Me alegra muchísimo que te guste el contenido y que te inspire a crear tus propios juegos, un gran saludo.
@ianvallejo-px8hy
@ianvallejo-px8hy Жыл бұрын
Muchas gracias amigo me re sirvio, voy a seguir viendo tus vídeos.
@jaironieto5018
@jaironieto5018 Жыл бұрын
excelente hermano, contenido de valor muchas gracias, me suscribo
@lolos201979
@lolos201979 Жыл бұрын
Gracias por compartir, me hace falta para un enemigo volador jajaj 👌
@Masitx99
@Masitx99 3 жыл бұрын
Saludo hermano desde Rep. Dominicana
@BravePixelG
@BravePixelG 3 жыл бұрын
Un gran saludo, espero te sea muy útil el contenido.
@Masitx99
@Masitx99 3 жыл бұрын
@@BravePixelG la verdad que si
@elheredero_
@elheredero_ 2 жыл бұрын
Muy buen video, justo explicas lo que buscaba :)
@hectorromero9941
@hectorromero9941 3 жыл бұрын
Excelente tutorial.
@ang1005
@ang1005 9 күн бұрын
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
@samuelalvarez7631
@samuelalvarez7631 2 жыл бұрын
eres una leyenda🙏
@nachi1553
@nachi1553 Жыл бұрын
Bro y como hago si tengo cuantro animaciones (Arriba, abajo, derecha, izquierda)?
@makako2468
@makako2468 11 ай бұрын
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
@BravePixelG
@BravePixelG 11 ай бұрын
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
@makako2468
@makako2468 11 ай бұрын
Muchísimas gracias
@dionalrodrigoandradevelasc8433
@dionalrodrigoandradevelasc8433 2 жыл бұрын
excelente muy bien explicado...tengo unas dudas con mi juego dondeme puedo comunicar?
@BravePixelG
@BravePixelG 2 жыл бұрын
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.
@Josemug98
@Josemug98 2 жыл бұрын
Amigo, mi personaje hace el giro pero al revés, cuando va hacia la derecha, el personaje va mirando hacia la izquierda. ¿Qué será?
@BravePixelG
@BravePixelG 2 жыл бұрын
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
@Josemug98
@Josemug98 2 жыл бұрын
@@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
@BravePixelG
@BravePixelG 2 жыл бұрын
@@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
@nicovalenvilla3810
@nicovalenvilla3810 2 жыл бұрын
se puede hacer que un waypoint sea al jugador y juando este lo alcance siga el seguimiento punto?
@BravePixelG
@BravePixelG 2 жыл бұрын
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
@Mastiphall Жыл бұрын
Perfecto, pero como podria hacer esto en 3D?
@vintogd5139
@vintogd5139 3 жыл бұрын
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...
@BravePixelG
@BravePixelG 3 жыл бұрын
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
@vintogd5139
@vintogd5139 3 жыл бұрын
@@BravePixelG Ok excelente, solucionado el problema! Muchas gracias, nuevo sub, revisaré los demás tutoriales ;)
@santiagosolis420
@santiagosolis420 3 жыл бұрын
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; } } }
@santiagosolis420
@santiagosolis420 3 жыл бұрын
solo necesito que suba y baje
@BravePixelG
@BravePixelG 3 жыл бұрын
@@santiagosolis420 No sé si entendí bien tu problema, pero puede ser por usar el vector 3 en lugar del vector 2.
@kleynkamahura3923
@kleynkamahura3923 2 жыл бұрын
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; } } }
@BravePixelG
@BravePixelG 2 жыл бұрын
Te falta llamar al método de girar dentro de la condición
@kleynkamahura3923
@kleynkamahura3923 2 жыл бұрын
​@@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
@LasBoludecesDeSebas
@LasBoludecesDeSebas 2 жыл бұрын
@@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
@CanalGenericojsjs
@CanalGenericojsjs 2 жыл бұрын
Oye bro sabes como hacer movimiento aleatorio en top down
@BravePixelG
@BravePixelG 2 жыл бұрын
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
@ZotryHung Жыл бұрын
Porque mis sprites tiemblan?
@alexv3604
@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
@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
@irgato7408
@irgato7408 2 жыл бұрын
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; } } }
@BravePixelG
@BravePixelG 2 жыл бұрын
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
@irgato7408
@irgato7408 2 жыл бұрын
@@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?
@BravePixelG
@BravePixelG 2 жыл бұрын
@@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.
Patrullaje de enemigo en plataforma con Unity
4:26
BravePixelG
Рет қаралды 18 М.
Cómo crear un juego con vista elevada en Unity (Top-Down)
5:19
BravePixelG
Рет қаралды 52 М.
КОНЦЕРТЫ:  2 сезон | 1 выпуск | Камызяки
46:36
ТНТ Смотри еще!
Рет қаралды 3,7 МЛН
GIANT Gummy Worm #shorts
0:42
Mr DegrEE
Рет қаралды 152 МЛН
Inteligencia Artificial CREA los JUEGOS que le pido (ChatGPT)
9:37
Cómo crear cinemáticas en Unity (Unity Timeline)
16:06
BravePixelG
Рет қаралды 2,2 М.
Reiniciar Escena despues de game over unity
3:32
EDYNO ESTUDIO
Рет қаралды 1 М.
Cómo crear un puntaje en Unity (Sistema de puntos)
8:52
BravePixelG
Рет қаралды 34 М.
Unity | Movimiento de personaje en 8 DIRECCIONES | Top Down
17:45
3 IA para ENEMIGOS en Unity (PRINCIPIANTES)
20:38
Indierama
Рет қаралды 21 М.
Cómo crear Animaciones 2D en Unity
12:39
BravePixelG
Рет қаралды 85 М.
КОНЦЕРТЫ:  2 сезон | 1 выпуск | Камызяки
46:36
ТНТ Смотри еще!
Рет қаралды 3,7 МЛН