miércoles, 22 de marzo de 2017

Como guardar las estadisticas del personaje, decisiones, etc.

Creando el Game Instance

Una vez estamos en Unreal Engine 4, nos situamos en la ventana ‘Buscador de Contenido’, hacemos clic derecho, ponemos el cursor sobre el apartado ‘Blueprints’, y seleccionamos ‘Blueprint Class’.
variables ue4
ue4 gameinstance
Acto seguido, escribimos en la casilla que pone ‘Buscar’ lo siguiente: “Game Instance”.
Clicamos en ‘GameInstance’ y le damos al botón verde ‘Seleccionar’.
gi ue4
Debemos ponerle un nombre y ya hemos creado un Game Instance.

Creando las variables a guardar

Como en cualquier BP, podremos crear diferentes variables. Es en el Game Instance donde deberemos crear las variables a guardar. Más tarde aprenderemos como acceder a ellas, modificarlas, y guardarlas.
Para crear una variable nos dirigimos a la parte izquierda, y clicamos en el ‘+’ a la derecha de ‘Variables’.
create variable unreal engine
Para editar esa variable (nombre, tipo, valor inicial, privacidad, etc) basta con seleccionarla, en el apartado ‘Variables’, y a la derecha aparecerán las opciones.
clase variable
Reitero que es aquí donde deberéis crear todas las variables que queráis guardar y acceder a ellas desde cualquier Blueprint o nivel. Siempre podéis ir añadiendo variables conforme el desarrollo de vuestro juego al Game Instance.
Dentro del Game Instance simplemente creamos las variables.

Definiendo nuestro GI.

Ahora tenemos que decirle a Unreal Engine cuál es el Game Instance en el que estamos almacenando las variables. Para ello nos dirigimos a la parte superior, ‘Editar’ -> ‘Ajustes del proyecto’.
proyect settings
En la ventana emergente, nos dirigimos, en la izquierda, a ‘Mapas y modos’. Dentro de ‘Mapas y modos’ hacemos scroll hasta llegar a ‘Game Instance’ y seleccionamos el Game Instance que hemos creado.

Finalmente cerramos la ventana emergente. Se guarda solo.

Cómo acceder a las variables

Por último vamos a ver cómo acceder desde cualquier BP al Game Instance y rescatar esas variables para trabajar con ellas.
Siempre que queramos acceder a una variable, sacamos el bloque ‘Proyectar a [el nombre de vuestro GI]’. En mi caso es ‘Proyectar a Levels_GameInstance’.
cast ue4
En ‘objeto’, ponemos el bloque ‘Obtener instancia del juego’.

Finalmente, escribimos el nombre de la variable que queremos traer, desde el nodo ‘as [el nombre de vuestro GI]’.
Para rescatar y sobrescribir un valor de la variable, escribimos ‘get’ y ‘set’ delante del nombre de la variable, respectivamente.
set and get
Y con esto, ya podemos acceder y modificar las variables desde cualquier Blueprint.