【问题标题】:Unity Scene-to-Scene inter-object communication: HOW?Unity Scene-to-Scene 对象间通信:如何?
【发布时间】:2019-01-28 02:43:06
【问题描述】:

Unity 能够让一个场景充当其他子场景的宿主,在游戏后期以附加和异步方式加载。

主场景中的对象可以通过哪些方式知道并确保与附加加载的子场景中的对象进行通信?

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

【问题讨论】:

    标签: c# object unity3d communication


    【解决方案1】:

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

    其次,如果您引用的对象是GameObject,并且您需要附加一个组件,您可以使用Singleton 模式,这样您就可以访问脚本的唯一实例。您可以在OnDestroy 下分配instance = null,以便在卸载场景时实例将消失。如果脚本在宿主场景中,则此选项是可行的,因为我假设它没有被卸载/销毁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多