ScriptableObject
Overview
This library supports serializing and deserializing ScriptableObject
fields.
These are serialized the same as a Complex Type.
Similarly, they must also be marked with the SerializableAttribute
.
Serialization
ScriptableObject
fields are serialized as a TOML table, by default.
To override the default behavior, mark the field with the TomlInlineAttribute
or TomlExpandAttribute
.
Use the NonSerializedAttribute
to prevent a field from being serialized.
Deserialization
ScriptableObject
fields are deserialized from TOML as a TOML table.
You must use the DeserializeInto
method to deserialize into a ScriptableObject
.
This is because the serializer cannot create a new instance of the ScriptableObject
type.
You can manually create instances via ScriptableObject.CreateInstance
and pass them to DeserializeInto
.
Example
[Serializable]
public class PlayerCharacter : ScriptableObject
{
private string _name;
private int _level;
private int _experience;
private int _gold;
private int _health;
private int _mana;
}
Can be serialized and deserialized as the following TOML document:
name = "Player"
level = 2
experience = 250
gold = 85
health = 100
mana = 50