- Home /
Passing the object as event argument
Hello everyone. Quick question here, I want, when an envent is triggered, to be able in some way to retreive the insance of the object which triggered the event, from a class which catches that event.
So let's say, for example that class Character triggers the event OnMove, but there are many instances of Character in the scene, so i want the class (let's say) MovementManager, which is subscribed to Character.OnMove to know which was the character which actually moved when subscribing to that event.
Thank you very much
Answer by Setzer22 · Jan 18, 2013 at 07:16 PM
Ok, lazy me... Figured this out myself.
So for the class triggering the event, you should declare (I'll use the example I posted in the original question so it's easier to follow):
public delegate void CharacterEventHandler(GameObject e);
public static event CharacterEventHandler OnMove;
//And this when sending the event
public void SomeRandomMethod() {
OnMove(this);
}
Then, for the class registering to the event, make sure the method you subscribe to the event is declared like this:
//this method is subscribed to the event
void WhenCharacterMoves(GameObject character) {
//Here you can refer to the character which move with "character"
}
That's it, too bad I didn't look that up myself... Anyway, hope it helps someone
Thanks. This was a huge help. Can I ask where you found this information from? The documentation is so limited right now.
@Lukas_G$$anonymous$$C $$anonymous$$SDN is always a good place to start for language related documentation. It contains the official documentation for the C# language.
Sorry I was jumping back and forth between this and the new UnityEvent system. There is very limited docs related to UnityEvents. I finally got it working thanks to this thread.
Your answer
Follow this Question
Related Questions
Object reference not set... but... it is? 0 Answers
Serialization - Variables won't change on original construction 1 Answer
i don't understand "NullReferenceException: Object reference not set to an instance of an objec" 0 Answers
"Object reference not set to an instance of an object" 2 Answers
Instancing Objects.. 2 Answers