- 1

Diseño y Prototipado Rápido de RPGs con Unity
00:15 - 2

Creación de un Roguelike en 2D con Unity
08:29 - 3

Corte y Configuración de Sprites para Videojuegos en Unity
08:21 - 4

Creación de Paletas y Capas en Unity para Diseñar Escenarios 2D
13:02 - 5

Capas de Ordenación y Colisiones en Unity para Videojuegos 2D
06:40 - 6
Uso de Gráficos en Proyectos de Unity
00:15
Programación de Movimiento Aleatorio para Enemigos en Juegos de Rol
Clase 21 de 60 • Curso Avanzado de Creación de RPGs con Unity
Contenido del curso
- 7

Controlador de Movimiento en Unity: Script PlayerController
10:39 - 8

Animación de Personajes en Unity: Creación de Clips y Timelines
08:07 - 9

Creación y gestión de animaciones en Unity con Animator
09:54 - 10

Creación de Blend Trees para Animaciones de Personajes
09:55 - 11

Controlador y Animador de Personajes en Unity
09:25 - 12

Programación de cámara que sigue al jugador en Unity 2D
07:56 - 13

Corrección de Bugs Gráficos en Unity: Creación de Materiales Adecuados
02:48 - 14

Colisiones y Movimiento en Unity con Rigidbody 2D
12:56 - 15

Diseño y Creación de Escenarios en Videojuegos 2D
02:56
- 20

Configuración de Enemigos en Videojuegos: Animaciones y Física
05:18 - 21

Programación de Movimiento Aleatorio para Enemigos en Juegos de Rol
12:01 - 22

Aleatoriedad en el Movimiento de Enemigos en Videojuegos
05:53 - 23

Detección de Colisiones y Reinicio en Unity
07:34 - 24

Gestión de Vida en Videojuegos: Creación de un Manager de Vida
07:35 - 25

Configuración de Armas y Colisiones en Unity para Videojuegos 2D
09:30 - 26

Programación de Vida y Daño en Enemigos de Videojuegos
04:41 - 27

Animación de Espada en Unity para Personajes 2D
11:04 - 28

Animaciones de Ataque en Unity con Blend Tree y Parámetros
03:46 - 29

Programación de Ataques y Animaciones en Videojuegos
09:11 - 30

Normalización de Velocidad en Movimiento Diagonal en Unity
09:49 - 31

Optimización de Código en Controladores de Juego
07:26 - 32

Efectos Visuales y Colisiones en Ataques de Videojuegos
17:00 - 33

Creación de Efectos de Explosión con Partículas en Unity
12:46 - 34

Crear un Canvas de Daño en Unity para Videojuegos
08:59 - 35

Programación de Texto de Daño en Unity
12:27 - 36

Creación de un HUD para mostrar la barra de vida en videojuegos
07:47 - 37

Creación y Gestión de un UI Manager en Unity para Videojuegos
13:24
- 38

Efectos Visuales de Daño en Unity: Parpadeo y Color de Texto
11:14 - 39

Implementación de sistema de experiencia y niveles en videojuegos de rol
11:22 - 40

Implementación de Estadísticas de Nivel en Juegos de Rol
11:57 - 41

Sistema de Defensa y Niveles en RPG: Implementación y Ajustes
08:58 - 42

Creación y Movimiento de NPCs en Videojuegos RPG
12:52 - 43

Limitación de Movimiento para NPCs en Unity
08:31 - 44

Diseño de Interfaz de Diálogo en Videojuegos con Unity
11:38 - 45

Programación de diálogos interactivos para NPCs en videojuegos
07:14 - 46

Implementación de Diálogos Dinámicos en Videojuegos de Rol
07:44 - 47

Control de Movimiento del NPC durante Diálogos en Videojuegos
07:38 - 48

Control de Diálogos y Movimiento en Videojuegos con Unity
09:28
- 49

Creación y Gestión de Misiones en Juegos de Rol
11:13 - 50

Creación de Misiones Triggers en Videojuegos con Unity
12:55 - 51

Creación de Misiones de Recolección en Videojuegos
10:22 - 52

Creación de Misiones para Derrotar Enemigos en Videojuegos
10:00 - 53

Corrección de Bugs en Diálogos y Animaciones de Videojuegos
06:52 - 54

Límites de cámara en juegos 2D: implementación y ajuste
12:53 - 55

Ajuste Dinámico de Límites de Cámara en Unity
08:35
¿Cómo programar movimiento aleatorio en un enemigo de videojuego?
¡Crear un enemigo que se mueva inteligentemente por el escenario puede elevar el nivel de tu videojuego a nuevas alturas! Este ejercicio te guiará en la programación de un script en C# que dota a tu enemigo de movimiento aleatorio en un juego tipo rol. Sin embargo, este script es lo suficientemente genérico para que se aplique tanto a distintos tipos de enemigos como a múltiples mecánicas dentro del juego.
La clave aquí será crear una pequeña inteligencia artificial que simule el desplazamiento aleatorio de los enemigos. ¡Manos a la obra!
¿Cómo estructurar el script del controlador del enemigo?
Para comenzar, necesitamos un nuevo script en C# que sea llamado EnemyController. Asegúrate de asignarlo correctamente al objeto enemigo en Unity. Este controlador será el cerebro que manejará el movimiento aleatorio del enemigo. Una vez preparado, abriremos el script en Visual Studio para definir las variables necesarias.
¿Cuáles son las variables esenciales para el movimiento del enemigo?
Dentro de nuestro script, introduciremos variables que contribuirán directamente al manejo del movimiento. Estas incluyen:
public float enemySpeed = 1;: define la velocidad inicial del enemigo.private Rigidbody2D enemyRigidbody;: necesario para manejar las físicas de su movimiento.private bool isMoving;: identifica cuándo el enemigo está en movimiento.public float timeBetweenSteps;: tiempo entre cada movimiento.private float timeBetweenStepsCounter;: control de tiempo entre movimientos.public float timeToMakeStep;: tiempo que dura un movimiento.private float timeToMakeStepCounter;: contador para calcular el tiempo de un movimiento.public Vector2 directionToMakeStep;: dirección del próximo movimiento.private Animator enemyAnimator;: para actualizar la dirección del movimiento en las animaciones.- Constantes para animaciones:
private const string horizontal = "Horizontal";private const string vertical = "Vertical";
¿Cuál es la lógica detrás de su movimiento?
El flujo del movimiento se diseñará dentro del método Update. Se verificará constantemente si el enemigo está en movimiento o detenido y actuará en consecuencia:
- Movimiento activo (
isMoving):
- Resta
Time.deltaTimeatimeToMakeStepCounter. - Mueve al enemigo aplicando
enemyRigidBody.velocity = directionToMakeStep * enemySpeed;. - Si el contador llega a cero, se detiene el movimiento asignando
enemyRigidbody.velocity = Vector2.zero;, marcandoisMovingcomo falso.
- Movimiento inactivo:
- Decrementa
timeBetweenStepsCounterutilizandoTime.deltaTime. - Al agotarse el contador, se activa nuevamente
isMovinge inicia un nuevo periodo de movimiento asignando valores aleatorios adirectionToMakeStepconRandom.Range.
Al final del Update, se deben enviar las direcciones al Animator para reflejar los cambios visuales en el personaje.
enemyAnimator.SetFloat(horizontal, directionToMakeStep.x);
enemyAnimator.SetFloat(vertical, directionToMakeStep.y);
¿Por qué es importante ajustar los parámetros?
Los parámetros definen aspectos importantes como la velocidad y tiempo entre movimientos que influyen en el dinamismo y fluidez del juego. Un ejemplo de configuración podría ser:
- Velocidad (
enemySpeed) de 1 unidad. - Tiempo entre pasos (
timeBetweenSteps): 2 segundos. - Tiempo para un paso (
timeToMakeStep): 1.5 segundos.
Estos valores deben ser configurados cuidadosamente para garantizar un comportamiento realista y desafío para el jugador. Con estos ajustes, podrás observar cómo el enemigo cambia de dirección y se desplaza aleatoriamente por el nivel, haciendo tu juego más interesante e impredecible. ¡No olvides guardar el script y dale al play para ver tu progreso en acción!