com.elestrago.unity.byte-formatter
v3.1.11
Published
This framework helps serialize objects to binary format.
Maintainers
Readme
Byte Formatter
This framework helps serialize objects to binary format.
Requirements
- Unity 2019.4 or newer.
Dependencies
None.
Installation
Add the package to Packages/manifest.json:
{
"dependencies": {
"com.elestrago.unity.byte-formatter": "3.1.11"
},
"scopedRegistries": [
{
"name": "eLeSTRaGo",
"url": "https://registry.npmjs.org",
"scopes": [
"com.elestrago.unity"
]
}
]
}Replace the registry URL above with your scoped registry, or remove the scopedRegistries block when consuming a published package.
Getting Started
There are no editor menus or [CreateAssetMenu] assets — the public entry surface is the runtime ByteWriter / ByteReader pair plus the ByteFormatterTypeCache.Init() bootstrap that the source generator emits into every consumer assembly. Call Init() once at startup, then write any type tagged [ByteSerializable] to a ByteWriter and read it back through a ByteReader. The snippet below mirrors the playground MonoBehaviour at Assets/Scripts/StateSerialization.cs:11.
using ByteFormatter.Runtime;
using UnityEngine;
using UnityEngine.Scripting;
[ByteSerializable]
public partial class SaveState
{
[ByteField(1)] public int Score { get; set; }
[ByteField(2)] public string PlayerName { get; set; }
[Preserve] public SaveState() { }
}
public class Boot : MonoBehaviour
{
private void Start()
{
ByteFormatterTypeCache.Init();
var writer = new ByteWriter();
new SaveState { Score = 1234, PlayerName = "ada" }.ToByte(writer);
byte[] payload = writer.ToArray();
var loaded = new ByteReader(payload).ReadByteConvertable<SaveState>();
Debug.Log($"{loaded.PlayerName}: {loaded.Score}");
}
}Use one ByteWriter / ByteReader per thread; separate instances are safe to use concurrently. ByteFormatterTypeCache.Init() is startup-only. See Threading.
Documentation
- Manual — concepts and architecture.
- API Reference — every public type and member.
- Examples — short, paste-ready snippets that call into the public API.
Unity Samples
None — this package does not ship importable Package Manager samples.
License
See LICENSE.
