Have two scripts modify eachother

I have two scripts - an inventory script attached to my player and an item database (which is giving me trouble). The database stores icons and models. I want to be able to instantiate the database object in my inventory script and pull up icons and models from the instance. How do I go about this?

The problem is that instantiating the database with a constructor seems to circumvent the Start() method and the public fields of the script I fill in the editor. So I end up with all my images and models being null. I could have the database build itself when the constructor is called but dragged-in references to my files don’t seem to stick with the instance and also end up being null when I hit play. I tried using Resources.Load in my constructor and even though everything worked Unity threw angry errors about main threads and Load calls - I’d like to avoid those if I could.

So what is the right way of doing this?

Ok so the another solution aside from what VioKyma wrote (which is awesome by the way) was to remove any and all constructors (general rule for all MonoBehaviours). Then have the ItemDatabase class build its database using Resources.Load in the Awake() method (which is always called before the Start() method). Then just drag the ItemDatabase script attached to the same object into the editor’s ItemDatabase variable field (which you need to publicly define in the Inventory class). This ensures that before Start() is called in Inventory the database has already been built…works like a charm.