Instantiated Prefab using its transform and object on other scripts

So my problem is that on my other object i cannot select a gameobject to be the object selected in another script:
i checked the other script and the problem is here:

    void Start () 
	{
		gameManager GM = GameManagerObj.GetComponent<gameManager>();
		PlayerObj = GM.PlayerStats; 
		stats = PlayerObj.GetComponent<PlayerStats>();
	}

It does not assign PlayerObj with the values of the PlayerStats found in gameManager script.

If you want to use the GameManager in the second script and take a reference to it in the Start() method, you need to be sure that every single reference in the GameManager script is instantiated. You should ask yourself: “Is the GameManager script ready to use? If so, then you should take a reference to it”. A solution is to Instantiate the GameManager in it’s Awake() method, and take it as a component in the Start() method in the second script.