

But for custom classes which don’t derive from UnityEngine.Object, Unity includes the state of the instance directly in the serialized data of the MonoBehaviour or ScriptableObject that references them. Unity serializes the instance itself independently, so it isn’t duplicated when multiple fields are assigned to the instance. When you assign an instance of a UnityEngine.Object-derived class to a field and Unity saves that field, Unity serializes the field as a reference to that instance. Use serialization callbacks, by implementing ISerializationCallbackReceiver, to perform custom serialization.įor Unity to serialize a custom class, you must ensure the class:.Wrap the nested type in a class or struct.If you want to serialize these, you have two options: Note: Unity doesn’t support serialization of multilevel types (multidimensional arrays, jagged arrays, dictionaries, and nested container types). An array of a field type mentioned above.Custom classes with the Serializable attribute.References to objects that derive from UnityEngine.Object.Custom structs with the Serializable attribute.Unity built-in types, for example, Vector2, Vector3, Rect, Matrix4x4, Color, AnimationCurve.Primitive data types (int, float, double, bool, string, etc.).Has a field type that can be serialized:.

Is public, or has a SerializeField attribute.To use field serialization you must ensure that the field:
Unity store data in grid how to#
The following section outlines how to use field serialization in Unity. Serializers in Unity work directly on the fields of your C# classes rather than their properties, so there are rules that your fields must conform to to be serialized. Because of this, serialization in Unity behaves differently to serialization in other programming environments. Serializers in Unity are specifically designed to operate efficiently at runtime. This document covers the following topics: This page outlines serialization in Unity and how to optimize your project for it. How you organize data in your Unity project affects how Unity serializes that data, which can have a significant impact on the performance of your project. Serialization is the automatic process of transforming data structures or GameObject states into a format that Unity can store and reconstruct later.
