Thanks Sam - this is great stuff. I wish I’d seen this before using Events in some work of my own, and making a bit of a dog’s dinner of it.
I’m rather fond of the observer pattern. And my (highly limited!) understanding is that it sits ‘under the hood’ of quite a few unity methods, particular in input and UI - OnClick, animator Hit(), etc.
As a huge newb, a lot of what I ask about is trying to build a framework of what to do, when. in this case, using Events vs what, in my not-a-computer-scientist language I call ‘normal methods.’ Where I guess I’ve arrived is that Events make a lot of sense any time the class needs to react to something happening in another class, including accessing information passed as a parameter. Events make little sense within a class, when it’s just doing a thing - e.g., Fighter’s CheckDistanceAndMove() method.
At least some of our work could be done as Events. Die(), for example. This is just one of those matters of coding preference, rather than a right/wrong answer?