TEMA 9 SISTEMA DE COMBATE

Sin valoraciones

TEMA 9 SISTEMA DE COMBATE

Vamos a crear un sistema básico de combate del estilo JRPG o Pokemon, es decir, un sistema de combate por turnos.

Usaremos una nueva escena donde enfrentaremos contra nuestro personaje a los objetos enemigos que ya tenemos. Diseñaremos un menú de acciones para atacar y crearemos toda la lógica necesaria para la base de nuestro combate, así podrás extenderla con tus propios añadidos, si quieres.

Además, dejaremos un detallito final en el combate: los enemigos podrán soltar oro u otros ítems cuando los venzamos, los cuales podrás usar después para comprar mejoras. Donde podemos ver todo el material será desde el archivo llamado ProyectoFinal Sistema de combate.

Lo primero que haremos será crear una nueva escena la cual llamaremos Combat

TEMA 9 SISTEMA DE COMBATE

Ahora desde la escena Town pondremos un elemento que nos permita entrar en esta nueva escena. Colocaremos esta entrada en la posición marcada en la imágen

TEMA 9 SISTEMA DE COMBATE

Dentro de la jerarquía de la escena Town tenemos un grupo de objetos llamado Exits que son las salidas de nuestra escena hacía a otras. En este caso tenemos creado un elemento llamado ExitCombat

TEMA 9 SISTEMA DE COMBATE

Desde el Inspector tenemos la siguiente configuración

TEMA 9 SISTEMA DE COMBATE

Para abrir la ventana de Build Settings recordamos que es desde File>Build Settings

TEMA 9 SISTEMA DE COMBATE

Ahora desde la carpeta de los Scriptable Objects>Scenes creamos un dato u scriptable Object llamado Combat

TEMA 9 SISTEMA DE COMBATE

Abrimos la escena llamada Combat y nos encontraremos con esta organización en su Jerarquía:

TEMA 9 SISTEMA DE COMBATE

El levelInitializer tendrá la siguiente configuración en la ventana del Inspector

TEMA 9 SISTEMA DE COMBATE

Desde la carpeta de ScriptableObjects>GameManager crearemos un objeto scriptable que llamamos Combat

TEMA 9 SISTEMA DE COMBATE

Este objeto tendremos que configurarlo también en la carpeta de Scripts>Utils>GameStateListener

TEMA 9 SISTEMA DE COMBATE

Abrimos dicho script y dentro de sus líneas de código escribiremos: public UnityEvent OnCombatState

TEMA 9 SISTEMA DE COMBATE

El menú de combate lo tenemos hecho en la carpeta de los prefabs>Menus>CombatMenu

TEMA 9 SISTEMA DE COMBATE

Se nos cargará dicho menu una vez que iniciemos el juego y nos aparecerá en la ventana de Jerarquía

TEMA 9 SISTEMA DE COMBATE

Dentro del menú nos encontramos con los siguientes botones y canvas:

TEMA 9 SISTEMA DE COMBATE

Tenemos un botón de pausa que está configurado de la siguiente manera:

TEMA 9 SISTEMA DE COMBATE

Luego tenemos un objeto padre llamado Combat HUD que contiene un contenedor, dos HUD uno para el enemigo y otro para el player. HUD: presentar información relevante mientras se juega.

TEMA 9 SISTEMA DE COMBATE

Si abrimos el objeto BottomContainer es donde se almacena nuestro equipo dentro del juego y se muestra tal y como vemos en la siguiente imágen

TEMA 9 SISTEMA DE COMBATE

 

Desarrollar un sistema de combate en Unity implica la implementación de mecánicas específicas para el combate, como la detección de colisiones, la gestión de la salud del jugador/enemigo, la animación y otros elementos relacionados:

1. Crear el Personaje/Enemigo:

1.1. Modelo 3D/2D: Importa o crea los modelos para tu personaje y enemigo.

2. Implementar la Salud:

2.1. Scripts de Salud:

  • Crea un script para gestionar la salud (HealthController).
  • Controla la cantidad de salud y actualiza la interfaz de usuario (UI).

2.2. Colisiones:

  • Usa colliders para detectar colisiones entre el jugador y los enemigos.

3. Controlar el Combate:

3.1. Scripts de Combate:

  • Crea un script para gestionar las acciones de combate (CombatController).
  • Implementa métodos para atacar y recibir daño.

3.2. Animaciones:

  • Asocia animaciones al combate.
  • Utiliza el sistema de animación de Unity para cambiar entre estados de animación (atacar, recibir daño, etc.).

4. Input del Jugador:

4.1. Entrada de Teclado/Ratón:

  • Implementa scripts para manejar la entrada del jugador (teclas, clics, etc.).
  • Asigna acciones a los controles, como atacar, bloquear, etc.

5. Enemigos:

5.1. IA del Enemigo:

  • Implementa una lógica simple para el comportamiento del enemigo (seguir al jugador, atacar, etc.).
  • Utiliza la inteligencia artificial o patrones de diseño para gestionar la toma de decisiones del enemigo.

6. Interfaz de Usuario (UI):

6.1. Barra de Salud:

  • Crea una barra de salud que refleje el estado actual del jugador/enemigo.

7. Sonido y Efectos Visuales:

7.1. Sonidos:

  • Asocia efectos de sonido a las acciones de combate.

7.2. Partículas y Efectos Visuales:

  • Agrega partículas y efectos visuales para realzar la experiencia de combate.

8. Optimización y Pulido:

8.1. Optimización:

  • Optimiza el código para un rendimiento eficiente.

8.2. Pulido:

  • Añade detalles adicionales, como transiciones suaves entre animaciones, retroalimentación háptica, etc.

9. Pruebas:

9.1. Pruebas de Jugabilidad:

  • Realiza pruebas exhaustivas para garantizar un combate fluido y sin errores.

Compártelo en tus redes

Valore este curso

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Utilizamos cookies para asegurar que damos la mejor experiencia al usuario en nuestra web. Si sigues utilizando este sitio asumimos que estás de acuerdo. VER