← SEARCHABLE ARCHIVE
Unreal Engine · 2026-07-01

Función de GameMode, PlayerController, GameInstance

Unreal Framework visto a través del menú y la estructura de combate de ProjectTB

INTERACTIVE READING MODE →

Los artículos escritos en este blog fueron creados con el objetivo de enseñar. Además, la información del artículo puede ser incorrecta, así que tenga cuidado.

A medida que su proyecto Unreal crece, es fácil comenzar a agregar funcionalidades aleatoriamente a GameMode, PlayerController y GameInstance. ProjectTB reorganizó las responsabilidades de cada clase, separando el menú principal y el combate.

GameMode son las reglas del mundo actual.

TBMainMenuGameModees responsable del flujo del menú principal,TBGameModeestá a cargo de las reglas de expedición y combate. One GameMode no se hace cargo de todos los menús, la selección de personajes y el combate.

MainMenu World
TBMainMenuGameMode
TBMainMenuPlayerController
TBMainMenuWidget

Battle World
TBGameMode
TBPlayerController
TBExpeditionHUDWidget

GameMode se crea cuando el mundo cambia. Por lo tanto, es bueno incluir las reglas del mundo, como ganar o perder la batalla actual, restricciones de despliegue y creación de enemigos.

PlayerController es la entrada y la intención del jugador.

PlayerController conecta los comandos que el jugador le da al mundo, como clics del mouse, selecciones y entrada de la cámara. En ProjectTB, la selección de aliados con el botón izquierdo y la información de desplazamiento del enemigo se separaron, y la designación del objetivo de batalla se mantuvo separada.

En lugar de poner toda la lógica en un widget cuando se presiona un botón de la interfaz de usuario, es más seguro enviar una solicitud a la función de verificación de Controller o GameMode.

GameInstance sobrevive entre mundos

GameInstance se mantiene incluso si mueves el mapa. Es bueno tener objetos con una vida útil más larga que el mundo, como información de campaña o subsistemas globales seleccionados en el menú principal.

Sin embargo, si pones todas las variables globales en GameInstance, se convierte en una clase de administrador enorme. Las responsabilidades independientes, como la interfaz de usuario y el almacenamiento, sonUGameInstanceSubsystemse puede separar.

El criterio para elegir una clase no es un enfoque conveniente. Debe decidir en qué mundo deben vivir los datos, quién debe verificar las reglas y quién será el propietario de la entrada.