unity refer to object in different scene script code example

Example 1: reference to gameobject in different scene unity

//the truth is, you shouldn't. its better to just add delegates to
//SceneManager.sceneLoaded and SceneManager.sceneUnloaded
//if you really need to,
FindObjectOfType<Canvas>();
//searches across all additively loaded scenes

Example 2: reference to gameobject in different scene unity

public Canvas menu;

// Start is called before the first frame update
void Start()
{
    //not in OnEnabled since we want these methods to be called on startup
    SceneManager.sceneLoaded += OnSceneLoaded;
    SceneManager.sceneUnloaded += OnSceneUnloaded;
}

void OnDestroy()
{
    //not in OnDisabled since we want these methods to be removed only when destroyed, not switched out of
    SceneManager.sceneLoaded -= OnSceneLoaded;
    SceneManager.sceneUnloaded -= OnSceneUnloaded;
}

//when a scene is loaded, make this canvas invisible
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
    menu.gameObject.SetActive(false);
}

//when a scene is unloaded, make this canvas visible again
void OnSceneUnloaded(Scene current)
{
    menu.gameObject.SetActive(true);
}