Getting a reference to the button just clicked

Hi,

I have a grid of buttons all sharing same handler. Is there any way to get what button was clicked when the button calls back the handler? I know I can add a GameObject param to the OnClick event in the editor but this is a bit odd. Must I add this information in editor to be able to know what button was clicked? I expected this information was going to be passed by the button when it called-back the handler.

Cheers.

Alternatively you can consider adding 1 script to all your buttons instead, which should include:

private Button buttRef;
private void Awake()
{
    buttRef = GetComponent<Button>();
}
private void Start()
{
    if (buttRef != null) buttRef.onClick.AddListener(() => 
    {
        //do whatever you want here
        //e.g.:
        //MyHandlerScriptOrReference.SomeFunc(buttRef.name, buttRef.transform);
        //MyHandlerScriptOrReference.SomeOtherFunc(buttRef);
        //etc.
    });
}

And just add this script to prefab of your buttons or to each button, and you don’t need to do anything in the Inspector.