Introducción

1

Game Design del juego

2

La estructura y assets de un proyecto en Unity

3

Convirtiendo nuestros assets en Tiles

4

Tilemaps y creación del escenario

5

Bonus: FastForward de la creación del escenario, sorting layers y creación de colliders

6

Acá encontrarás los archivos de este curso

Personaje principal: Movimiento y Animaciones

7

El jugador y el movimiento

8

Creando nuestra primera animación

9

Creando el grafo de animaciones

10

Usando un árbol de animaciones

11

Mostrando la solución del desafío e implementando transición entre blended trees

12

Programando una cámara que siga al jugador

13

Corrección del bug gráfico

14

límites del escenario, rigid bodies

15

Ejercicio: diseño de interiores

Escenarios Avanzados

16

Transiciones entre escenas

17

Mantener Player y Camera entre escenas

18

Spawning Points: programando que el jugador y la cámara aparezcan en el lugar correcto al cambiar de escena

19

Agregando Identificadores a nuestros Spawning Points para controlar mejor el flujo de nuestro juego

Enemigos Avanzados

20

Creando nuestro enemigo

21

Programando las físicas y el patrullaje del enemigo

22

Generando movimiento completamente aleatorio

23

Programando el ataque del enemigo

24

Crear Manager de Health del Player

25

Crear armas

26

Programando el ataque del Player con arma

27

Mover la espada al caminar

28

Creando el ataque con espada

29

Ejecutando el ataque con un botón

30

Movimiento en diagonal

31

Optimizando nuestro player controller

32

Ataque mejorado

33

Uso de partículas

34

Añadir el daño del enemigo en batalla

35

Programando los contadores de vida del enemigo

36

Colocando más info de UI en pantalla

37

Script de la vida

Personaje principal avanzado

38

Añadir el daño del personaje (ejercicio)

39

Sistema de puntos de experiencia para nuestro personaje principal

40

Level Up!

41

Level Up! Defensa y Reto Final del Módulo: Stats de los enemigos

42

Creando un NPC

43

Limitar el movimiento de nuestro NPC

44

Creando una pantalla de diálogos para nuestro RPG

45

El diálogo del NPC

46

Múltiples líneas de diálogo

47

Parar el NPC durante el diálogo

48

Parar el personaje durante el diálogo

Quests

49

La estructura de una quest

50

Quest 1: Ir a un lugar

51

Quest 2: Encontrar un objeto

52

Quest 3: Matar enemigos

53

Revisión de bugs

54

Mantener la cámara dentro del escenario

55

El problema al cambiar de escena

Audio

56

Agregando SFX a nuestro videojuego

57

Agregando música a nuestro videojuego

58

Ajustar volúmen del audio de cada uno de los efectos de sonido

59

Creando un VolumeManager

60

Agregando economía a nuestro juego y cierre

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Generando movimiento completamente aleatorio

22/60
Recursos

¿Cómo corregir errores en el movimiento de enemigos?

Al desarrollar videojuegos, es crucial ajustar el comportamiento de los enemigos para mejorar la jugabilidad. Uno de los problemas observados es que los enemigos no se mueven hacia arriba ni hacia la derecha. Para solucionar esto, es esencial entender primero cómo opera la función Random.Range.

Cuando se usa Random.Range(-1, 2), se debe tener en cuenta que este método excluye el último valor. Por lo tanto, si buscas incluir los valores -1, 0 y 1, es necesario establecer el segundo parámetro en 2. Este ajuste garantiza que los enemigos puedan moverse en múltiples direcciones, añadiendo diversidad a su comportamiento.

int movimiento = Random.Range(-1, 2); // Este rango incluye -1, 0 y 1

¿Cómo añadir aleatoriedad al comportamiento de los enemigos?

Incluir pequeñas variaciones aleatorias en el tiempo de movimiento de los enemigos ayuda a evitar que se sincronicen, creando una experiencia más realista y desafiante para el jugador. Para lograrlo, se pueden multiplicar los atributos TimeBetweenSteps y TimeToMakeStep por un factor aleatorio.

¿Qué fórmulas se utilizan para la variabilidad?

  • TimeBetweenSteps: multiplicar por un Random.Range(0.5f, 1.5f) para que el paso ocurra en diferentes intervalos.

  • TimeToMakeStep: también multiplicarlo por un Random.Range(0.5f, 1.5f) para permitir variaciones en la duración del paso.

    timeBetweenSteps *= Random.Range(0.5f, 1.5f); timeToMakeStep *= Random.Range(0.5f, 1.5f);

Este enfoque sencillo del game design no solo aporta dinamismo, sino también evita comportamientos predecibles, manteniendo al jugador en un constante estado de anticipación.

¿Cómo gestionar objetos en Unity eficientemente?

Al trabajar con múltiples enemigos en una escena, es importante organizarlos de manera eficiente para mantener el orden y facilitar el trabajo futuro. Una práctica común es utilizar prefabs para clonar enemigos y agruparlos bajo un GameObject vacío.

Pasos para organizar enemigos:

  1. Crear Prefab: arrastra tu enemigo a la carpeta de prefabs.
  2. Agrupar enemigos: coloca todos los enemigos en un objeto vacío llamado 'enemies' dentro de la jerarquía.

Esta organización asegura que tu jerarquía se mantenga limpia y ordenada, permitiéndote continuar trabajando con facilidad.

¿Cómo mejorar la interacción de los enemigos en escena?

Para que los enemigos interactúen adecuadamente con los elementos del ambiente, es fundamental asignarles una capa adecuada. Por ejemplo, al colocar la misma capa que el jugador, asegurarás que ambos reaccionen de forma similar a las colisiones y otros efectos.

gameObject.layer = LayerMask.NameToLayer("Player");

Uso de colliders y ajustes de rotación

  • Colliders: estos elementos permiten al enemigo detectar y responder a colisiones, como no atravesar un lago.
  • Rotación: desactivar la rotación impide que los enemigos giren al colisionar, manteniendo una apariencia más natural.

Siguiendo estas recomendaciones, podrás desarrollar enemigos que no solo mejoren su jugabilidad, sino que también enriquezcan tu videojuego mediante un diseño cuidado y errores mínimos.

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Sería interesante programar que si el enemigo detecte al usuario lo persiga.
Creo que todo esto es lo más básico de inteligencia artificial.

Excelente !

yo he programado en Unreal, como tiene blueprints se me hace más facil de hacer la inteligencia artificial y ps uno de las formas más faciles de detección es un trigger, pero ellos tienen componente de vista y de captura de sonido, pero se me hace facil tambien aca en Unity

Genial