I've been debating on that while writing the plugin, but it just feels like the overhead of creating what is essentially a record class with one extra step and adding it to a dict is less than attaching and detaching a MonoBehav.
On the other hand, the component system is, in a way, the way to store extra data on a GameObject.
Doing it the MonoBehav way will also get rid of a question "but what if hash collision?" too.
Thought experiments aside, I might want to look into lifecycle of activating/deactivating components. Probably add it inactive and activate/deactivate on the state entry/exit. I have a feeling that Leap/ChainLeap are attached to some kind of MonoBehaviour that's attached to Acrid's GameObject when it exists.
I've been debating on that while writing the plugin, but it just feels like the overhead of creating what is essentially a record class with one extra step and adding it to a dict is less than attaching and detaching a MonoBehav.
On the other hand, the component system is, in a way, the way to store extra data on a GameObject.
Doing it the MonoBehav way will also get rid of a question "but what if hash collision?" too.
Thought experiments aside, I might want to look into lifecycle of activating/deactivating components. Probably add it inactive and activate/deactivate on the state entry/exit. I have a feeling that
Leap
/ChainLeap
are attached to some kind of MonoBehaviour that's attached to Acrid's GameObject when it exists.