BinaryFileIO : Real-time Save/Load
Bytenado
$86.90
(no ratings)
Date |
Price |
---|---|
日時 |
価格($) |
07/17(2024) |
86.9 |
07/17(2024) |
43.45 |
07/20(2024) |
43.45 |
07/31(2024) |
86.9 |
11/24(2024) |
86.9 |
Jump AssetStore
Save and load in binary. And in real-time!A replacement for BinaryFormatter to read and write the public fields and properties of class objects/scripts using BinaryReader and BinaryWriter.FeaturesSupports most objects and collection types of any size and mix, such as a List>[,,,,,].Can use public properties to safely save and load references like sprites, materials, addressables, or other component data.Read and write real-time asynchronously or with coroutines.Update data in existing GameObjects and ScriptableObjects by reading directly into them.Files are compactly formatted in binary (1 and 0 bits), making them smaller than text-based formats like JSON.Convert objects to a byte array and use with encryption or network transmission.Optionally convert an object into a Base64 string.Flip the bits of object data using a byte mask to make it less human-readable.Device SecurityUses Type safety to mitigate type confusion attacks.Does not read or write fully qualified assembly names to prevent assembly loading attacks.Only creates objects using their default constructor to avoid deserialization attacks.Explicitly does not read or write known unsafe types to reduce information disclosure and remote code execution attacks.File IntegrityUses a CRC-32 hash to detect if data is corrupt or changed.Writes as a temporary file first to avoid corruption while saving.Locks resources in a thread-safe way with SemaphoreSlim and ConcurrentDictionary.Debug LogMessages show read and write data while playing inside Unity Editor.Helpful warnings assist with a bug-free development.Messages and warnings can be disabled and are not compiled with a final build.Tutorial for saving in Unity Loady Dungeons:https://youtu.be/cTE1s_JueTE?si=8pFfQbqRpzw0PmeqSupports class/script objects with the following member types:Primitives = byte, sbyte, short, ushort, int, uint, long, ulong, bool, char, float, double, decimal.Collections = Array, Dictionary, SortedList, SortedDictionary, ConcurrentDictionary, List, HashSet, ObservableCollection, Queue, Stack, LinkedList, SortedSet, ConcurrentBag, ConcurrentQueue, ConcurrentStack, BlockingCollection.Generics = Tuple, ValueTuple, KeyValuePair.Unity References = MonoBehaviour (script), GameObject, ScriptableObject.Other = string, enum, Guid, TimeSpan, structs with public members (example: Vector3, Color, DateTime, Quaternion).Polymorphic Collections = dictionary entries can be added for custom object types that need to be created different from their runtime type to support polymorphism.Explicitly does not support the following unsafe types:IntPtr, UIntPtr, Uri, WeakReference, HandleRef, GCHandle, MulticastDelegate.If a public field or property in a class/script object is not supported, that member is skipped with a debug log warning, but all other supported members are still read or written.