Unity有能力让一个场景作为其他子场景的主机,在游戏中稍后添加和异步加载。
主机场景中的对象可以通过哪些方式了解并确保与附加加载子场景中的对象进行通信?
反之,附加加载的场景中的对象如何与其宿主场景中的对象进行通信?
发布于 2019-01-28 13:12:29
首先,在Unity的UnityEngine.SceneManagement包中,您可以使用返回Scene的SceneManager.GetSceneByName("scene name here")。如果场景为空,则场景尚未加载。如果是,你可以使用isLoaded来检查是否加载了,SceneManager。您可以在此之后使用Find,但我不建议这样做,因为这是一个缓慢的过程。
其次,如果您引用的对象是一个GameObject,并且您需要一个附加到它的组件,那么您可以使用Singleton pattern,这样您就可以访问脚本的唯一实例。可以仅在OnDestroy下指定instance = null,以便在卸载场景时实例将消失。如果脚本位于主机场景中,则此选项是可行的,因为我假设它不会被卸载/销毁。
https://stackoverflow.com/questions/54394900
复制相似问题