- 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
Control de Movimiento del NPC durante Diálogos en Videojuegos
Clase 47 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 parar completamente el movimiento del NPC durante un diálogo?
En el emocionante mundo del desarrollo de videojuegos, crear interacciones dinámicas entre personajes es esencial para una experiencia de usuario envolvente. Uno de los retos comunes es gestionar el movimiento de los NPCs (personajes no jugables) durante los diálogos. En esta sección, aprenderás a detener completamente a un NPC mientras conversas, usando variables y lógica de programación.
¿Qué script controla el movimiento del NPC?
El primer paso es identificar el script que controla el movimiento del NPC. En nuestro proyecto, es el script NPC Movement. Dentro de este script está el método update, que aleatoriamente decide si el NPC debe caminar o detenerse cada ciertos segundos.
Para pausar el movimiento al inicio de un diálogo, necesitaremos una nueva variable:
bool isTalking = false;
Esta variable se colocará junto a isWalking y no es necesario inicializarla porque, por defecto, será false, lo cual es el comportamiento esperado.
¿Cómo detener el movimiento en el momento del diálogo?
Una vez que tenemos la variable isTalking, abrimos la función update para incluir una condición que detenga el movimiento cuando el NPC esté hablando:
void Update() {
if (isTalking) {
StopWalking();
return;
}
// Resto de la lógica de caminar
}
Aquí lo que hacemos es verificar al inicio del update si isTalking es verdadero. Si ese es el caso, llamamos a StopWalking() y retornamos de la función para evitar ejecutar la lógica de caminata.
¿Cómo iniciar y controlar el diálogo?
Ahora, en el script encargado del diálogo (NPC Dialog), necesitamos detectar cuando el jugador inicia una conversación. Cuando esto ocurre, estableceremos isTalking en true:
void StartConversation() {
if (GameObject.GetComponentInParent<NPCMovement>() != null) {
GameObject.GetComponentInParent<NPCMovement>().isTalking = true;
}
}
Nos aseguramos de que NPCMovement existe como componente en el padre antes de modificar isTalking. Esto asegura que solo los NPCs con capacidad de movimiento se vean afectados.
¿Cómo reanudar el movimiento después del diálogo?
Finalmente, en el script NPC Movement, necesitamos reiniciar el movimiento una vez que el diálogo termine. Para esto, vinculamos nuestro código con dialogManager y verificamos si el diálogo sigue activo:
void Update() {
if (!manager.DialogActive) {
isTalking = false;
}
// Verificación de movimiento
}
Esta sencilla verificación permite que, cuando el diálogo ya no esté activo, la variable isTalking vuelva a false, reactivando el ciclo habitual de movimiento.
¿Cómo implementar estos cambios en Unity?
- Guardar cambios de scripts: una vez editados los scripts, guárdalos y ve al editor de Unity.
- Prueba en el editor: inicia el juego y observa el comportamiento del NPC. Debería detenerse al comenzar un diálogo y reanudar su movimiento al terminarlo.
Observa, por ejemplo, el conejo naranja en el juego. Sigue moviéndose hasta que inicias un diálogo en el que se quedará inmóvil, educadamente atendiendo la conversación. Y así, nuestros NPCs ahora demuestran una interacción más realista y lógica dentro del juego, añadiendo profundidad a la experiencia del jugador.
Te animo a implementar y experimentar con estas mecánicas, adaptándolas a tus necesidades específicas y enriqueciendo tus habilidades de desarrollo de videojuegos.