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);
}//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