A Scriptable Object is a Unity special object type that doesn't need to be attached to a game object on a scene to exist, because it can be saved as an asset in the project. This class is used as a base for most of the special editor classes that we saw in the previous chapters, such as the
EditorWindow class. However, the principal use for that in this chapter is to going to be saving data in a persistent way.
In some scenarios, this has benefits over using XML, JSON, or plain text files because Unity will handle all the serializing and parsing for you without the necessity of a custom parser or third-party tool.
In this chapter, you will learn how to use Scriptable Objects to store data and make it persist in the Play mode.