ScriptableObjects are simple Classes that hold different type of data based on your configuration.

ScriptableObjects are C# scripts that can be inherited in a simple way. You can create variants of the object easily and use them in your game.

ScriptableObjects are similar to Prefab. But Prefab is used when the exact object needs to be reused. But what if there are some variations.

ScriptableObjects are used when you need objects with similar properties but different values.

For example, you can create an Employee scriptable object with Name, Age and Gender properties. Now you can create different employee objects with different values for the properties.

To create a scriptable object in Unity, you need to create an empty C# script and change the inheritance from MonoBehaviour to ScriptableObject

Advantages of ScriptableObject 1. They are scene independent. 2. Take up less space compared to Prefabs. 3. They are good for better memory allocation.

In short, ScriptableObjects are code templates for similar game objects that improve performance with better memory allocation.