- 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
Efectos Visuales de Daño en Unity: Parpadeo y Color de Texto
Clase 38 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 implementar el daño en ambos sentidos?
Al desarrollar un videojuego, es crucial representar claramente el daño recibido por el personaje tanto por parte del jugador como del enemigo. Esto no solo mejora la inmersión del jugador, sino que también mejora la jugabilidad y comprensión de la situación del juego. En Unity, logramos esto mediante la reutilización del script de daño que aplicamos al enemigo y adaptándolo para representar el daño recibido por el jugador. Esto se logra sin necesidad de alterar la referencia de emisor o receptor del daño.
¿Cómo adaptamos los scripts en Unity?
Para representar correctamente el daño, podemos reutilizar el script damagePlayer. Este script no solo maneja el daño infligido al enemigo, sino que ahora también incorpora:
-
GameObject DamageNumber: se asigna y se instanciará desde el editor de Unity para mostrar gráficamente el daño recibido.
-
Posicionamiento del daño: se utiliza
collision.gameObject.transform.positionpara mostrar el daño en la posición exacta donde el personaje lo recibe.var clone = (GameObject)Instantiate(damageNumber, collision.gameObject.transform.position, Quaternion.Euler(Vector3.zero)); clone.GetComponent<DamageNumber>().damagePoints = damage;
El código anterior ayuda a visualmente mostrar el daño en pantalla, igual que cómo se representaría el daño que el jugador inflige al enemigo.
¿Cómo diferenciamos el daño del jugador del enemigo?
Una vez que el daño se muestra en pantalla, el siguiente desafío es diferenciar visualmente si el daño procede del enemigo o es causado por el jugador. Esto se logra mediante una mejora visual: hacer que el personaje "parpadee" cuando recibe daño.
Implementación del efecto de parpadeo
Para añadir este efecto, implementamos lo siguiente:
-
Variables para el efecto flash:
-
flashActive: indica si el personaje está en modo parpadeo. -
flashLength: define la duración del parpadeo. -
flashCounter: controla el tiempo interno del parpadeo. -
Método
toggleColor: cambia entre visible e invisible al personaje dependiendo del valor booleano pasado al método.private void ToggleColor(bool visible) { characterRenderer.color = new Color(characterRenderer.color.r, characterRenderer.color.g, characterRenderer.color.b, visible ? 1.0f : 0.0f); }
Lógica del parpadeo en el método Update
La lógica del parpadeo se lleva a cabo dividiendo la animación en tercios, lo que permite alternar entre visible e invisible varias veces durante un ciclo de daño:
if (flashActive)
{
flashCounter -= Time.deltaTime;
if (flashCounter > flashLength * 0.66f)
{
ToggleColor(false);
}
else if (flashCounter > flashLength * 0.33f)
{
ToggleColor(true);
}
else if (flashCounter > 0f)
{
ToggleColor(false);
}
else
{
ToggleColor(true);
flashActive = false;
}
}
¿Qué más podemos hacer para mejorar la experiencia visual?
Aparte del parpadeo, ajustar el color del texto que muestra el daño es otra forma efectiva de diferenciar el daño. Cambiar el color del texto es una tarea sencilla que puedes probar. Este ejercicio no solo te ayudará a comprender mejor la mecánica de efectos visuales en Unity, sino que también te preparará para enfrentar nuevos desafíos en el desarrollo de videojuegos.
En resumen, la implementación de efectos visuales de daño, como el parpadeo, no solo agrega una capa de complejidad y realismo al juego, sino que también enriquece la experiencia del jugador. Así que, ¡motívate a seguir explorando y aprendiendo!