My solution from Agent_007's hint:
I create a new script and add in the function:
public void SelectStartingShipPressed()
{
HostScript.Instance.ButtonShipPressed(this.gameObject);
}
HostScript is the script I actually want to call. Instance is the Singleton for it.
I select the GameObject in the Unity GUI that is the basis for shipButton.
On that I add the above script as a component
Then add UIButtonMessage Component and set the properties:
Target: the shipButton gameObject
Function Name: SelectStartingShipPressed
Trigger: OnClick
That does work. *phew*
ArenMook:
Now that you mention .current, I remember seeing that back in... December? Wow, that long ago? *sigh*
I tried adding into ButtonShipPressed():
UIButton button = UIButton.current;
but button only got NULL assigned to it. As I have a working solution, my interest has faded in exploring further.