Skip to content

MARCOMON94/ADM0.1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ADM - Proyecto Unity/C#

Proyecto desarrollado en Unity como práctica de programación multimedia y desarrollo de videojuegos. El repositorio contiene una aplicación/juego 3D por turnos con escenas, personajes, interfaz, audio, animaciones, lógica de combate, sistema de movimiento sobre tiles y configuración orientada a exportación multiplataforma.

Estado del proyecto

El proyecto se encuentra en fase funcional de desarrollo. Incluye varias escenas configuradas, lógica de juego implementada en C#, recursos multimedia integrados y ajustes de proyecto para plataformas de escritorio y móviles.

Tecnologías utilizadas

  • Unity 2022.3.18f1.
  • C# como lenguaje principal de programación.
  • TextMeshPro para textos e interfaz.
  • Unity UI / uGUI para botones, imágenes, indicadores y pantallas.
  • Sistema de escenas de Unity.
  • Físicas y raycasts de Unity para selección, movimiento y detección.
  • ScriptableObjects para configuración de estadísticas de personajes.
  • Audio, animaciones, prefabs, materiales y recursos 3D integrados en el proyecto.
  • Configuración de proyecto compatible con módulos Android, iOS, XR, vídeo, audio y UI incluidos en Unity.

Relación con programación multimedia y dispositivos móviles

Este proyecto permite trabajar contenidos relacionados con el desarrollo multimedia y móvil:

  • Análisis y uso de un motor de juegos como entorno de desarrollo.
  • Integración de recursos gráficos, modelos, texturas, audio y animaciones.
  • Desarrollo de interfaces de usuario interactivas.
  • Gestión de escenas, estados de juego y flujo entre pantallas.
  • Configuración de proyecto para distintos dispositivos y resoluciones.
  • Uso de módulos de Unity para Android, iOS, audio, vídeo, UI, XR y renderizado.
  • Adaptación de una aplicación multimedia a un entorno exportable a plataformas móviles.

Estructura general

Assets/
  Resources/
    Animator/
    Audio/
    Characters/
  Scenes/
    Main Menu.unity
    Intro.unity
    Tutorial.unity
    Battle.unity
  Scripts/
    CharacterStatsSO.cs
    CharacterStatsSnapshot.cs
    CombatManager.cs
    NPCMove.cs
    PlayerMove.cs
    TacticsMove.cs
    Tile.cs
    TurnManager.cs
    UIManager.cs
Packages/
  manifest.json
ProjectSettings/
  ProjectSettings.asset
  ProjectVersion.txt

Escenas principales

El proyecto tiene configuradas varias escenas en el build:

  • Main Menu.unity: escena de menú principal.
  • Intro.unity: escena o secuencia introductoria.
  • Tutorial.unity: escena de aprendizaje o explicación inicial.
  • Battle.unity: escena principal de combate.

Mecánicas implementadas

Sistema de turnos

El proyecto incluye un TurnManager encargado de organizar las unidades en función de su velocidad, iniciar y finalizar turnos, actualizar rondas y comprobar condiciones de fin de partida.

Movimiento táctico sobre tiles

La clase TacticsMove calcula tiles seleccionables, detecta el tile actual mediante raycasts y permite mover unidades por el escenario. También incluye lógica de salto, caída, movimiento horizontal y búsqueda de caminos.

Búsqueda de caminos

El movimiento utiliza una lógica de pathfinding tipo A*, con valores g, h y f en los tiles. El sistema tiene en cuenta distancia, altura y coste adicional por diferencia vertical.

Combate

El CombatManager gestiona ataques normales y ataques de tipo Pierce. El sistema aplica daño, actualiza la vida de los personajes y elimina unidades derrotadas de la cola de turnos.

Personajes y estadísticas

Las estadísticas se definen mediante CharacterStatsSO, usando ScriptableObjects para configurar:

  • Nombre.
  • Movimiento.
  • Altura de salto.
  • Velocidad de movimiento.
  • Velocidad de turno.
  • Daño básico.
  • Rango de ataque.
  • Vida.
  • Tipo de ataque.
  • Ataque en altura.
  • Capacidad de vuelo.

También se utiliza CharacterStatsSnapshot para guardar y restaurar estadísticas iniciales al reiniciar la partida.

Interfaz de usuario

El UIManager gestiona:

  • Botones de movimiento, ataque, pasar turno, reinicio y menú principal.
  • Indicadores de vida.
  • Indicadores visuales de turno.
  • Texto de ronda.
  • Pantalla de fin de juego.
  • Secuencia introductoria con imágenes y música.

Inteligencia básica de NPC

La clase NPCMove permite que los enemigos busquen el objetivo más cercano, calculen camino hacia él, se muevan y ataquen cuando están en rango.

Configuración móvil y multiplataforma

El proyecto incluye configuración de Unity para exportación y compatibilidad con plataformas móviles:

  • Android incluido en los módulos del proyecto.
  • iOS incluido en la configuración de PlayerSettings.
  • Orientación automática habilitada.
  • Configuración de pantalla completa en Android.
  • Resoluciones por defecto y escalado configurados.
  • Versionado de aplicación.
  • Parámetros de SDK mínimo de Android.

Aunque el desarrollo principal se ha realizado en Unity, la arquitectura del proyecto permite analizar problemas propios de aplicaciones móviles, como resolución, orientación, empaquetado, módulos de plataforma, rendimiento gráfico, recursos multimedia y configuración del dispositivo objetivo.

Autor

Marco Monzón Monzón

Repositorio desarrollado como parte del trabajo práctico relacionado con programación multimedia, dispositivos móviles y desarrollo de videojuegos con Unity.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors