我正在寻找一种在场景之间转换的模式,将一个对象的一个实例移动到下一个场景,然后将其返回到前一个场景,但不会破坏前一个场景中的其他对象。以下是上下文:
我正在寻找一种模式来实现这一目标。我所阅读的大部分内容都建议使用DontDestroyOnLoad,但实际上这会将所有字符移动到所有场景中,这会导致任务场景中出现太多字符。另一种选择可能是创建一个包含所有角色信息的游戏对象,在场景之间传递,并在每个场景中使用逻辑来重新实例化该场景中的相应角色[s]。这感觉就像很多开销,因为我没有其他理由不断擦拭和重新创建它们。也许第三种选择是重构我的游戏,因此任务场景只是添加到主场景中,并显示为某种阻止/捕获输入的叠加层。这听起来很混乱,可能会出现性能问题(针对Android)。
有没有人有这个好的模式?
答案 0 :(得分:0)
使用场景管理器,您可以创建一个空场景,在这个空场景中,您可以放置所有要保留的对象。
卸载第一个场景(不是您创建的场景)后,加载下一个场景。
当您下一个场景加载时,您将所有对象从您创建的场景传输到刚刚加载的场景。
PS:你有多个场景加载同时检查此链接以获取更多信息: https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.html