When a player clicks on an object with their mouse, I need to be able to determine which player did so. Ideally I would like to get some way to definitively get the instance of the PlayerController class that did this. However, the only solutions I have seen proposed involved either calling GetWorld()->GetFirstPlayerController(); (though that was for getting the Character of said Controller and when I tried to just get the Controller I get issues trying to convert it into my custom PlayerController class) and a Blueprint attempt that involved a somewhat convoluted checking of a custom player ID embedded in the custom PlayerController class. So, is there actually a way to achieve what I want or is this something not explicitly supported and I need to try and hack my way around it?
If you are looking to know which player/pawn/character/controller just clicked, then you can use this function in your controller, as long as you check the same tick.
Globally Checking:
The easiest method (from what you have described) would be (since it sounds like the object being clicked is the one checking) to do a check,
if it has been recently clicked, then check an array of all player controllers, and if any of them return true on the hyperlinked function, then save a reference to it. xD
Direct References:
Of course, if you are looking to do it in a cleaner fashion, then create a function for the object being clicked,
so when a given player/pawn/character/controller traces that object and calls the new function, it passes itself as a reference.
There are many solutions to your problem
Just depends on how you like to go about it!