COMPARTE ESTE ARTÍCULO

Parte 1 – Preguntas teóricas cortas (10 × 1 punto)

Responde de forma breve y clara.

  1. Explica con tus palabras qué es el patrón Singleton y pon un ejemplo de caso de uso típico en videojuegos.
  2. Indica dos problemas o riesgos de abusar del patrón Singleton en un proyecto grande.
  3. ¿Qué es una máquina de estados (State Machine) y por qué es útil en el desarrollo de videojuegos?
  4. Diferencia entre implementar una máquina de estados con enum y con interfaces.
  5. ¿Qué ventaja tiene usar interfaces en Unity para estructurar el comportamiento de los objetos del juego?
  6. Define brevemente qué es la localización (Localization) en un videojuego.
  7. ¿Por qué es importante separar la lógica del juego de los textos mostrados en pantalla cuando hablamos de localización?
  8. En el contexto de UI en Unity, explica qué es y para qué sirve un Manager o GameManager.
  9. ¿Qué es un Prefab en Unity y por qué es tan importante en un editor de objetos como el de la práctica?
  10. Explica qué es el Raycasting y pon un ejemplo de cómo se usaría en el editor de objetos descrito en la práctica.

Parte 2 – Preguntas de desarrollo / código (5 × 2 puntos)

Escribe el código o pseudocódigo en C# que se pide. No es necesario que sea perfecto, pero sí legible y coherente.

  1. Implementa un Singleton básico en Unity para un AudioManager que solo permita una instancia en la escena.
public class AudioManager : MonoBehaviour
{
    public static AudioManager Instance { get; private set; }

    private void Awake()
    {
        // Completar para que solo exista una instancia
    }
}

Completa el método Awake.

  1. Define un enum llamado EditorState con los estados: Neutral, Create, Move, Rotate, Delete. Escribe un fragmento de código dentro de un EditorManager que cambie de estado cuando pulsemos los botones de la UI.
  2. Diseña una interfaz IEditorState para una máquina de estados basada en interfaces. Debe tener al menos estos métodos: EnterState(), UpdateState(), ExitState(). Escribe la interfaz y la cabecera de una clase concreta MoveState que la implemente.
  3. Escribe un pequeño ejemplo de interfaz en C# llamada ISelectable que obligue a los objetos a implementar un método OnSelect() y OnDeselect(). Después, muestra cómo la usarías en un objeto del escenario.
  4. En el sistema de localización, explica (con pseudocódigo o esquema) cómo cargarías un texto localizado a partir de una clave, usando un LocalizationManager y un diccionario de claves/valores.

Parte 3 – Caso práctico: Editor Multimedia Interactivo (5 × 3 puntos)

Lee el enunciado de la práctica “Realización de un Editor Multimedia Interactivo” y responde.

  1. Diseña el diagrama básico de la máquina de estados del editor (texto): indica los estados y las transiciones principales entre ellos, incluyendo cómo se vuelve al estado neutro.
  2. Explica paso a paso el flujo de creación de un objeto desde que el usuario pulsa el botón “Crear” en la UI hasta que el objeto queda fijado en el suelo.
  3. Explica paso a paso el flujo de movimiento de un objeto (herramienta “Mover”), indicando qué ocurre cuando se hace click en un objeto, mientras se mantiene pulsado y cuando se suelta el botón del ratón.
  4. Describe cómo implementarías el sistema de eliminación con confirmación (popup) usando estados o subestados (por ejemplo: Delete_SelectObject, Delete_ConfirmPopup).
  5. Propón al menos tres ejemplos concretos de feedback (sonoro y visual) que añadirías al editor para mejorar la usabilidad, indicando en qué momento se ejecutan (por ejemplo: al seleccionar modo, al colocar objeto, al eliminarlo, etc.).

Soluciones orientativas / Guía paso a paso

Parte 1 – Teoría

Parte 2 – Código

Parte 3 – Caso práctico


Borrador de post para Academia SanRoque

Título del post
Simulacro de examen: patrones de diseño, máquinas de estados y editor interactivo en Unity

Contenido
En el módulo de Programación de Videojuegos estamos preparando al alumnado para un examen donde se combinan varios conceptos clave de desarrollo profesional en Unity:

  • Patrón Singleton aplicado a gestores globales (AudioManager, GameManager).
  • Máquinas de estados implementadas con enum e interfaces.
  • Uso de interfaces para estructurar el comportamiento de los objetos del juego.
  • Sistema de localización de textos (Localization) en Unity.
  • Diseño e implementación de un Editor Multimedia Interactivo: creación, movimiento, rotación y eliminación de objetos en un entorno 3D, con una interfaz de usuario completa y feedback sonoro/visual.

Para ayudarles a preparar la prueba, hemos elaborado un simulacro de examen completo que incluye:

  1. Preguntas teóricas sobre patrones de diseño, estados e interfaces.
  2. Ejercicios de código en C# centrados en Singleton, máquinas de estados, interfaces y localización.
  3. Un caso práctico basado en la práctica “Realización de un Editor Multimedia Interactivo”, donde el alumnado debe describir flujos de interacción (crear, mover, rotar y eliminar objetos) y proponer mejoras de usabilidad mediante feedback sonoro y visual.

El simulacro incluye soluciones orientativas y pasos explicados para que el alumnado pueda comparar sus respuestas, detectar fallos habituales y reforzar los conceptos más importantes antes del examen oficial.

Este material está pensado para alumnado de FP de Programación de Videojuegos, pero también puede resultar útil a cualquier persona que esté aprendiendo Unity y quiera practicar patrones de diseño, máquinas de estados y diseño de herramientas internas (editores) dentro del motor.


¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.


¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos. 

 

 


NUESTRAS ÚLTIMAS PUBLICACIONES

INSTAGRAM

TIKTOK


 …Y PRONTO MUCHAS MÁS

AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert
error: CONTENIDO PROTEGIDO