Got to the point where I'm banging my head against a wall now, so here goes!
I have a uGUI canvas prefab with a non-trivial hierarchy:
![alt text][1]
HackingUI_DeviceCanvas is the object in question. This canvas is loaded (as a prefab) using Instantiate() when the game starts, and I assign the relevant camera to it:
private void CreateHackingDeviceDetailsUI(Camera cam) {
// Create the UI overlay
var hackingUIDeviceDetailsGO = Instantiate(HackingUIDeviceDetailsCanvasPrefab) as GameObject;
if (hackingUIDeviceDetailsGO == null) {
Debug.LogError("Unable to instantiate the hacking UI device details UI canvas");
return;
}
_hackingUIDeviceDetailsCanvas = hackingUIDeviceDetailsGO.GetComponent