Межобъектное общение между сценами Unity: КАК? - PullRequest
0 голосов
/ 28 января 2019

Unity обладает способностью иметь одну сцену в качестве хоста для других подсцен, с аддитивной и асинхронной загрузкой, позже в игре.

Как может узнать объект в сцене хостаи быть уверенным в связи с объектом в аддитивно загруженной под-сцене?

И наоборот, как объект в аддитивно-загруженной сцене может взаимодействовать с объектом в его главной сцене?

1 Ответ

0 голосов
/ 28 января 2019

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

Во-вторых, если объект, на который вы ссылаетесь, является GameObject и вам нужен компонент, подключенный кэто, вы можете использовать шаблон Singleton , чтобы вы могли получить доступ к единственному экземпляру скрипта.Вы можете просто назначить instance = null в OnDestroy, чтобы экземпляр исчез, когда сцена выгружена.Эта опция жизнеспособна, если скрипт находится в сцене хоста, так как, я полагаю, он не выгружен / уничтожен.

...