get player character

Yes, interface is the way to go for your situation.
In fact, try to get all your external access event/functions into interface. (ie. if this event are suppose to be called by another object, make it a interface event/function)
This will reduce a lot of those castTo nodes, and less headach for dependency problems.