Los ScriptableObject pueden usarse no solo para datos, sino también para desacoplar sistemas.

Datos compartidos

Ejemplo:

[CreateAssetMenu]
public class WeaponData : ScriptableObject
{
    public int daño;
    public float velocidad;
}

Varios objetos pueden usar el mismo asset.

Ventaja

Separás:

datos
de
comportamiento

Casos útiles

Precaución

No convertir todo en ScriptableObject sin necesidad.

Resumen rápido

MonoBehaviour
→ comportamiento en escena

ScriptableObject
→ datos reutilizables como assets