Runtime Persistence
Saving properties in the Build
In some cases, it is necessary to allow changes to properties (e.g., interface settings) during runtime in a built application. Runtime Persistence enables automatic storage and retrieval of values to maintain settings across sessions.
Introduction
How It Works
Persistent Storage: All defined values are loaded before
OnEnable
andAwake
methods are executed.Automatic Saving: Values are saved automatically when the scene is closed, ensuring that changes persist.
Uses PlayerPrefs: The data is stored using Unity’s PlayerPrefs system, which varies based on the platform.
Where Data is Stored?
The PlayerPrefs storage location varies by platform:
Windows: Stored in the Registry under:
MacOS: Stored in a .plist file under:
Linux: Saved in the
~/.config/unity3d/
directory.
For more details, refer to the Unity PlayerPrefs documentation.
Saving Data via Runtime Persistence Component
The Runtime Persistence component allows saving and restoring component properties in Unity without custom programming. It enables automatic persistence of values such as interface settings, network configurations, and UI preferences across sessions. Besides the persistence itself properties can be configured to be editable via the Options window during Runtime.
How to Use the Runtime Persistence Component
Attach the Component
Add the Runtime Persistence script to the GameObject containing the properties you want to save.
Assign Properties to Save
Under Properties to Save, click + to add a new property.
Component: Select the script containing the property.
Name: Enter the exact property name from the script.
Enable Automatic UI Integration
Show in Options (
✔
): The property will be automatically added to the realvirtual.io Options Window for user configuration.
Handling Events
OnValueChanged: Triggered when the property is modified in the Options Window (after the user exits the field).
OnOptionsWindowClosing: Triggered when the Options Window is closed.
These events can be used to execute custom logic when values change.
Example Use Case (from Image)
Scenario: Saving the IP address of a Denso Interface (DensoCobotta1300
).
Component:
DensoCobotta1300 (Denso Interface)
Property Name:
ipAdress
Show in Options:
✔
(IP field will appear in the UI).OnValueChanged Event: Calls
OnValueChangedReconnectInterface.OnValueChanged
, which deactivates and reactivates the interface if the IP changes.
Last updated