Different events for different interactors

I’ve been running into a problem with socket interactors.
It seems that socket interactors derive from the same base interactor class that’s used for things like hands.

Now the problem is, I have a lot of XRGrabInteractables that need to react different depending on whether they are being selected by the player’s hands or socket interactables (IE: a virtual iPad that only switches on when you grab it).

I kinda want to add things like OnSelectEntered(XRDirectInteractor) to disambiguate these cases, but I’m not quite sure what the proper way to do this would be?

The select event passes you the interactor in the event args, you can add any kind of check you want there, if you want to filter for XRDirectInteractor then you can use a type check like if MySelectEnterEventArgs.interactor is XRDirectInteractor but you can also add a tag/name check or call GetComponent on it to check if it has a specific component, it depends on your game logic.