i'm trying to keep a policy of starting work on a new feature and not worrying too much about perfecting the method. it's just a prototype, i can come back and refactor or redo however much of it etc. etc... but at the same time, there are definitely some areas of Unity knowledge that i know i want to dive into eventually, and a prototype is a good excuse to flex some new code design where i can.
scriptable objects are Unity's way of storing and serializing data in the editor outside of behaviors. in the prototype so far, i've just punched values straight into the behaviors. i anticipated that later i would probably separate the behavior from some sort of data representation of the object, like a plain old c# object (commonly abbreviated to POCO). but a scriptable object appears to be pretty similar to a POCO with the exception of being more editor friendly.
i do see people talking about the cons of making your architecture rely too heavily on separate asset files for every single scriptable object that you make. there's definitely a reasonable degree you'd want to lean on these. but i think i should start making some for weapons, to try making some solutions to creating complicated weapon attacks.