- 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
Normalización de Velocidad en Movimiento Diagonal en Unity
Clase 30 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 corregir el movimiento diagonal en videojuegos?
Al desarrollar un videojuego, es crucial garantizar que las mecánicas de movimiento sean coherentes y fluidas. Un problema común es cuando un personaje se mueve más rápido en diagonal que en horizontal o vertical, debido a cómo se combinan los vectores de movimiento. Veamos cómo podemos corregir este bug visual siguiendo una metodología sencilla y efectiva.
¿Por qué la diagonal hace que el personaje se mueva más rápido?
Cuando combinamos un movimiento horizontal con uno vertical, estamos sumando dos vectores, lo que da lugar a un movimiento diagonal. Según la geometría, esta diagonal es la hipotenusa de un triángulo rectángulo, lo que significa que su longitud es mayor que la de los lados del triángulo (representando los vectores horizontales y verticales). Por lo tanto, en los videojuegos, el personaje puede moverse más rápido de lo esperado. Para corregir esto, es necesario normalizar el vector de movimiento.
¿Cómo normalizar el movimiento en Unity?
Para abordar este problema, debemos modificar nuestro código, asegurándonos de que la velocidad sea uniforme en todas las direcciones. A continuación, se describen los pasos a seguir:
- Comprobar el movimiento en dos direcciones:
- En el método
updatedelPlayerController, añadimos una comprobación adicional para ver si el personaje se mueve tanto en horizontal como en vertical.
- Crear variable
currentSpeed:
- Introducimos una variable privada
currentSpeedpara manejar la velocidad modificada del personaje.
- Normalizar la velocidad:
-
Si el personaje se mueve diagonalmente (en dos direcciones), ajustamos
currentSpeeddividiendo la velocidad original por la raíz cuadrada de 2, utilizandomathf.sqrt(2). -
En caso contrario,
currentSpeedse iguala a la velocidad original.// Código de ejemplo en C# if (Mathf.Abs(Input.GetAxisRaw("Horizontal")) > 0.5 && Mathf.Abs(Input.GetAxisRaw("Vertical")) > 0.5) { currentSpeed = speed / Mathf.Sqrt(2); } else { currentSpeed = speed; }
- Aplicar
currentSpeedal movimiento:
- Cambiar todos los usos de la variable
speedporcurrentSpeedpara asegurar que influya adecuadamente en el movimiento del personaje.
¿Qué consideraciones tener con la animación en movimiento diagonal?
Además de ajustar la velocidad, debemos tener en cuenta cómo se presentan las animaciones al moverse en diagonal. Diferentes direcciones pueden requerir diferentes animaciones, lo cual es fundamental para mejorar la experiencia del usuario.
-
Cuando el personaje se mueve en diagonal, es posible que las animaciones requieran priorizar una dirección sobre otra para mantener la consistencia visual.
-
Podemos crear un sistema que decida por una dirección predominante al mirar en diagonal, facilitando la ejecución de las animaciones adecuadas.
¿Cómo configurar las animaciones en Unity?
Para el caso de un juego en 2D con movimiento en ocho direcciones, se pueden seguir estos pasos:
- Acceder al Animator y a los Blend Trees:
- Dentro del
Animator, ajustar las configuraciones para las animaciones de ataque o movimiento.
- Crear Motion Fields adicionales:
- Añadir nuevos
Motion Fieldsen las posiciones de coordenadas diagonales como (1,1), (1,-1), (-1,-1), (-1,1).
- Asignar animaciones prioritarias:
-
Por cada par de posiciones diagonales, asignar una animación ya existente que se corresponda con una de las direcciones principales (arriba, abajo, izquierda, derecha).
// Ejemplo de pseudocódigo para configurar animaciones if (posicionDiagonal) { animacionAtaque = animacionPrincipalCorrespondiente; }
Con estos ajustes, conseguirás que las animaciones y el control del personaje sean mucho más fluidos y coherentes, lo que contribuye significativamente a una mejor experiencia de juego. Al integrar estas prácticas en tu flujo de trabajo de desarrollo, optimizarás el comportamiento y las animaciones del personaje, manteniéndolos consistentes en cada dirección. ¡Sigue aprendiendo y mejorando tus habilidades de desarrollo de videojuegos!