Unity场景到场景间对象间通信:如何?

时间:2019-01-28 02:43:06

标签: c# object unity3d communication

Unity可以让一个场景充当游戏中后期以叠加方式和异步方式加载的其他子场景的主机。

主机场景中的对象可以通过什么方式知道并确保与添加加载的子场景中的对象通信?

反之,加性加载场景中的对象如何与其宿主场景中的对象通信?

1 个答案:

答案 0 :(得分:0)

首先,在Unity的UnityEngine.SceneManagement包中,您可以使用SceneManager.GetSceneByName("scene name here")并返回Scene。如果场景为空,则尚未加载场景。如果已加载,则可以使用isLoaded来检查是否已加载SceneManager。之后,您可以使用Find,但我不建议您这样做,因为这是一个缓慢的过程。

第二,如果您要引用的对象是GameObject,并且需要附加一个组件,则可以使用Singleton模式,以便访问脚本的唯一实例。您只需在instance = null下分配OnDestroy,以便在卸载场景时实例将消失。如果脚本位于宿主场景中,则此选项是可行的,因为我认为脚本尚未卸载/销毁。