Cómo guardar y cargar un BOOL con PlayerPrefs en Unity

Introducción

En este artícu­lo vamos a ver cómo guardar una vari­able booleana en Uni­ty uti­lizan­do la clase Play­er­Prefs, las vari­ables booleanas en Uni­ty son del tipo bool. La clase Play­er­Prefs de por si no cuen­ta con un méto­do para guardar datos booleanos por lo que vamos a guardar en memo­ria un dato entero y uti­lizar esta infor­ma­ción para deter­mi­nar si el val­or de la vari­able es ver­dadero o fal­so. Luego ver­e­mos cómo car­gar la vari­able booleana leyen­do de la memo­ria el val­or entero alma­ce­na­do y apli­can­do lóg­i­ca para trans­for­mar ese dato en ver­dadero o falso.

Guardar este tipo de vari­ables nos puede servir para guardar esta­dos, por ejem­p­lo si el jugador ya ha hecho algu­na acción como cer­rar una ven­tana y que esta no vuel­va a aparecer.

Esti­ma­dos internautas

🍷🧐

ACERCA DE ESTE VÍDEO

En este vídeo vemos un pro­totipo hecho en Uni­ty que per­mite guardar dis­tin­tos tipos de datos en la memo­ria per­sis­tente uti­lizan­do la clase Play­er­Prefs, si quieres descar­gar este pro­totipo para impor­tar­lo en tu pro­pio proyec­to visi­ta este enlace.

MI LISTA DE REPRODUCCIÓN DE UNITY
👇🏽

RECUERDA SUSCRIBIRTE AL CANAL

Cómo guardar un bool con PlayerPrefs

Play­er­Prefs no tiene una fun­ción que per­mi­ta guardar val­ores lógi­cos direc­ta­mente, así que vamos a guardar un número entero que podrá valer 0 o 1 en fun­ción del esta­do de la vari­able booleana, para esto usamos el méto­do estáti­co "SetInt", una fun­ción que nece­si­ta que le demos dos parámetros.

El primer parámetro es un string con el nom­bre que va a ten­er esta vari­able que vamos a alma­ce­nar, esto per­mi­tirá que luego lo podamos recu­per­ar. El segun­do parámetro es el val­or entero que quer­e­mos guardar.

La instruc­ción que hará el guarda­do de los datos en Uni­ty se vería de la sigu­iente forma:

PlayerPrefs.SetInt("nombreDatoLogico", bool­Da­ta ? 1 : 0);

En este caso indicamos el nom­bre del dato entre comil­las porque es un string, el segun­do parámetro lo indicamos uti­lizan­do el oper­ador ternario "?:" que fun­ciona como una sen­ten­cia if sim­pli­fi­ca­da, en primer lugar ten­emos el dato lógi­co que quer­e­mos guardar, "bool­Da­ta", luego el oper­ador "?" y luego los val­ores que devuelve si bool­Da­ta es ver­dadero o fal­so sep­a­ra­dos por ": ".

La expre­sión "bool­Da­ta ? 1 : 0" dará como resul­ta­do 1 si bool­Da­ta es ver­dadero y 0 si bool­Da­ta es falso.

Cómo cargar un bool con PlayerPrefs

Para car­gar un bool en Uni­ty usan­do Play­er­Prefs ten­emos que recor­dar que en el paso ante­ri­or lo guardamos como 0 si la vari­able es fal­sa o 1 si es verdera, por lo tan­to recu­per­amos el val­or entero usan­do la fun­ción "GetInt", una fun­ción que se puede usar de dos for­mas distintas.

En la primer for­ma le damos un parámetro que va a ser el nom­bre del dato que quer­e­mos recu­per­ar, el nom­bre que le dimos cuan­do eje­cu­ta­mos la fun­ción "SetInt" que vimos ante­ri­or­mente. Lo hace­mos de la sigu­iente forma.

bool­Da­ta =PlayerPrefs.GetInt("nombreDatoLogico")==1;

La eje­cu­ción del méto­do estáti­co "GetInt" de Play­er­Prefs dá como resul­ta­do un número entero pero al uti­lizar el oper­ador "==", que nos com­para si ambas expre­siones son iguales, obten­emos un resul­ta­do lógi­co que podemos asig­nar a la vari­able "bool­Da­ta". Si el entero alma­ce­na­do es 1, bool­Da­ta será ver­dadero, sino será falso.

La segun­da for­ma con­siste tam­bién en dar­le el nom­bre del dato que uti­lizamos en la eje­cu­ción de "SetInt" pero además damos un val­or por defec­to que se uti­lizará en caso de que no haya un dato guarda­do bajo ese nom­bre, esto se hace de la sigu­iente forma.

bool­Da­ta =PlayerPrefs.GetInt("nombreDatoLogico",0)==1;

VÍDEOS DEL CANAL CON MÁS BÚSQUEDAS

DE UNITY

DE BLENDER

Scroll al inicio
Secured By miniOrange