Во-первых, в пакете UnityEngine.SceneManagement Unity вы можете использовать SceneManager.GetSceneByName("scene name here")
, который возвращает Scene
.Если сцена пуста, сцена еще не загружена.Если это так, вы можете использовать isLoaded
, чтобы проверить, загружен ли он, SceneManager .Вы можете использовать Find
после этого, но я не рекомендую это, поскольку это медленный процесс.
Во-вторых, если объект, на который вы ссылаетесь, является GameObject
и вам нужен компонент, подключенный кэто, вы можете использовать шаблон Singleton , чтобы вы могли получить доступ к единственному экземпляру скрипта.Вы можете просто назначить instance = null
в OnDestroy
, чтобы экземпляр исчез, когда сцена выгружена.Эта опция жизнеспособна, если скрипт находится в сцене хоста, так как, я полагаю, он не выгружен / уничтожен.