I use several static manager classes that are not on objects, just persistent throughout the game world at all times. The main one of these always finds player when the game starts and assigns him/her as a static player variable on the static manager script, as well as the mainUI, etc. This way anything that wants to can call managerScript.mainUI.GetComponant().-----
or whatever.
alternatively you can just use GameObject.Find(“Inventory”).GetComponant().----
Is that what you mean? How to get to the script on the object?