unity scriptable object vs singleton