Accessing gameobject from other scene

I have two scenes one is GUI and other is my main game scene i want to reference gameobject of my main game scene to my GUI scene on getting UI button.
Basically i have three types of players and I want to choose one of them from my GUI.i made three UI botton and set my other two gameobjects inactive while one is active on UI input
I am using findobjectwithtag but I don’t know how to reference a gameobject from other scene

And sorry for my bad english ;_;

Create 3 player prefabs and make a script that instantiates one of the player prefabs depending on which UI button you click. E.g.
a script on each button to select the player

int playerNum;
void OnMouseDown (){
    GameObject.Find("name").GetComponent<otherScript>().selected = playerNum;
    SceneManager.LoadScene("Main Scene", LoadSceneMode.Single);
}

and script on a separate object to make the player

boolean playerCreated = false;
GameObject[] players;
int selected;

void Awake ()
{
    DontDestroyOnLoad(gameObject);
}

void Update ()
{
    if(!playerCreated && SceneManager.GetActiveScene().name == "Main Scene")
    {
        Instantiate(players[selected]);
        playerCreated = true;
    }
}

I’m not sure if there’s a way to do it in a single script.

you need to script for the scene01 and scene02. manuManager is the character selection script and GamePlay script is for the game.

Scene01

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class MenuManager : MonoBehaviour {
//
// Your code
//
//above code is for the button and this will save your chatater identification,
pubic void Character01()  
{
PlayerPrefs.SetInt("Character", 1);
}

}

GamePlay Script

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
 
public class GamePlay : MonoBehaviour {

static int CharacterMode = 0;

public GameObject player01;
public GameObject player02;

void Awake() 
{
	CharacterMode= PlayerPrefs.GetInt("Character");	//check character
} 

void Update() 
{
//Character Check
if(CharacterMode== 0) 
{
Instantiate(player01);
} 
if(CharacterMode== 1) 
{
Instantiate(player02);
}
}