我想为我的播放器制作一个颜色系统。在我的游戏场景中,玩家可以拾取硬币,并且硬币数量将通过playerprefs保存,但我不知道如何在菜单场景中使用硬币数量。我也需要一些关于播放器颜色选择器的帮助。当玩家选择一种颜色时,在我的游戏场景中必须向玩家指示该颜色。所以我想,我需要知道如何在两个场景之间进行通信。有人可以帮我一些教程吗?
有多种方法可以实现这一点,我觉得这取决于个人喜好:将数据保存到文件、使用 DoNotDestroyOnLoad...
但据我了解,现在推荐的方法是创建一个“管理器场景”,它将在应用程序的整个生命周期中保持活动状态,并在其他场景打开和关闭时将数据传入和传出,而不是使用 DontDestroyOnLoad:
建议避免使用 DontDestroyOnLoad 来持久保存您希望在场景加载中生存的管理器游戏对象。相反,创建一个包含所有管理器的管理器场景,并使用 SceneManager.LoadScene(, LoadSceneMode.Additive) 和 SceneManager.UnloadScene 来管理游戏进度。源代码
请参阅此处的Unity 指南。基本上,在任何给定时刻,您都会同时打开 2 个场景:经理场景和任何实际活动的游戏场景。然后,您可以通过事件委托在两个开放场景中的脚本之间进行通信。它的工作方式是:
“0-Attract”、“1-Sealant”、“2-Paint”和“3-Conclusion”是我的实际游戏场景,“Manager Scene”包含所有其他场景中存在的所有内容(因此没有理由杀死和重生它们)以及我所有处理场景之间数据传递的“管理器”脚本。
请注意,多场景编辑一开始可能会令人困惑,因为您需要注意一些新事物(即哪个场景当前“活动”以及这意味着什么),因此请务必阅读我上面提出的统一指南。祝你好运!
| 归档时间: |
|
| 查看次数: |
4907 次 |
| 最近记录: |