Guardar y recuperar valores numéricos
Usa campos SaveGame para los números; el juego gestiona la protección y el almacenamiento duraderos.
En esta página
Decide quién se ocupa de cada parte
Scientific Number Tools representa valores numéricos y protege Safe mientras viven en memoria. Unreal SaveGame gestiona los objetos de partida locales y su serialización. Un guardado local normal puede bastar para valores Normal o Packed si el juego no necesita protección contra manipulación ni autoridad remota. Si necesita esas políticas, el proveedor que elija el juego gestiona almacenamiento, claves, identidad de cuenta y autoridad. SNT no abre archivos, crea sesiones de persistencia ni cifra un registro SaveGame.
Guarda Normal y Packed con Unreal
- Añade propiedades
FScientificNumberoFScientificNumberPackeda tu Blueprint o clase C++USaveGame. Conserva la representación científica; no guardes el texto de pantalla ni conviertas a double. - Usa los nodos de Unreal Save Game to Slot y Load Game from Slot y comprueba sus resultados. Packed tiene menos precisión y rango; úsalo donde corresponda, no como valor autoritativo de la economía.
- Prueba desde un proceso nuevo. En C++, los archivos que filtran propiedades
SaveGamerequieren que los campos pertinentes del objeto de partida y del tipo numérico estén marcados para guardarse.
Guarda un valor Safe en un SaveGame local
- Añade una propiedad Scientific Number a tu Blueprint SaveGame. Guarda el valor lógico: esa propiedad es Normal aunque tu variable durante el juego sea Safe.
- Llama a Try Prepare Safe Number for Save (o su variante Context-Bound), comprueba el éxito y asigna el número devuelto a esa propiedad. Guarda el objeto con el nodo de Unreal y comprueba su resultado.
- Carga el objeto SaveGame, lee la propiedad y llama al nodo Try Restore correspondiente. Comprueba el éxito y el estado numérico antes de aplicar el valor restaurado.
- La preparación Context-Bound necesita el GUID/nombre de origen. La restauración recibe un GUID/nombre de destino válido; úsalo en las lecturas posteriores. Ese GUID puede ser nuevo en este proceso y no tiene que coincidir con el de la sesión anterior.
Esto conserva la cantidad y reconstruye la protección en memoria. No autentica el archivo guardado. Si el almacenamiento local normal cubre las necesidades del juego, no hace falta un proveedor externo.
Añade autenticación duradera si la necesitas
La siguiente variante utiliza la API de persistencia/protección del propio juego. SNT no tiene un selector de proveedor ni un adaptador que configurar.
Los campos cifrados de Safe protegen el valor en la memoria del proceso actual y son transitorios. Guardar directamente ese contenido no lo hace portable.
- Llama a Try Prepare Safe Number for Save o Try Prepare Context-Bound Safe Number for Save. Comprueba el éxito y conserva el
FScientificNumberlógico devuelto. - Pasa ese número al proveedor Blueprint o C++ que hayas elegido. El proveedor decide formato durable, cifrado/autenticación, provisión de claves, almacenamiento, autoridad y política. Guarda la salida protegida del proveedor en tu objeto SaveGame o backend.
- Al cargar, deja que el proveedor verifique y desproteja primero el registro. Si la verificación falla, termina la ruta sin cambiar el estado del juego.
- Llama a Try Restore Safe Number from Save o Try Restore Context-Bound Safe Number from Save con el número lógico autenticado. Comprueba el éxito; Context-Bound también recibe el GUID y nombre que tendrá en memoria.
- Aplica el valor al juego solo cuando los controles del proveedor y de restauración hayan terminado correctamente.
Prepare comprueba la autenticidad local del valor Safe y devuelve su número lógico. Restore crea un valor protegido nuevo en memoria. Ninguno protege el registro en disco ni demuestra que el número cargado proceda de un proveedor auténtico. El pin de salida contiene datos `FScientificNumber` normales y legibles.
Nombres de nodos Blueprint
| Valor | Preparar | Restaurar |
|---|---|---|
| Scientific Number | Asignar a una propiedad SaveGame | Leer la propiedad |
| Packed Scientific Number | Asignar a una propiedad SaveGame | Leer la propiedad |
| Safe Scientific Number | Try Prepare Safe Number for Save | Try Restore Safe Number from Save |
| Context-Bound Safe Scientific Number | Try Prepare Context-Bound Safe Number for Save | Try Restore Context-Bound Safe Number from Save |
Usa Unreal SaveGame para Normal y Packed cuando su serialización local cubra las necesidades del juego. Los nodos Prepare/Restore de Safe solo convierten entre valores Safe en memoria y su número lógico; no ofrecen gestión de archivos, selector de proveedor, autenticación de registros almacenados ni almacenamiento duradero. Añade un proveedor propio del juego solo si necesitas protección duradera, autoridad remota u otra política.
Límite del proveedor
El proveedor puede ser Blueprint o C++ y pertenece al juego. Gestiona su formato, claves, autenticación, almacenamiento, identidad de cuenta, autoridad y recuperación. Verifica y desprotege los registros cargados antes de llamar a Restore, comprueba cada resultado y aplica el número solo después de superar esas comprobaciones. SNT no incluye ni selecciona un proveedor de persistencia.