同时打开多个统一场景
Having multiple unity scenes open simultaneously
我一直在用 Unity3D 开发棋盘式游戏。主场景是棋盘,其中存储了每个玩家的数据和当前(随机生成的)棋盘。
我打算在游戏中添加小游戏,例如当着陆在棋盘上的特定 space 时。自然地,我想在一个单独的场景中编写迷你游戏。有没有一种方法可以在不丢失当前场景实例的情况下执行此操作,从而保持当前场景的状态?
提前致谢:)
简答:不,但可能有另一种方法可以满足您的需求。
对 Application.LoadLevel
的基本调用将在加载下一个场景之前销毁当前场景。这不是你想要的。
如果您的迷你游戏相对简单,您可以使用 Instantiate
引入预制件并在远离场景其余部分的地方生成它。您甚至可以使用脚本切换到另一个摄像机、切换播放器控件和场景中的其他交互,等等。迷你游戏完成后,您可以销毁或禁用您带来的任何东西,并重新启用主场景中需要打开的任何东西。
您可以创建一个单独的场景并调用 Application.LoadLevelAdditive
加载该场景 而不会 破坏当前场景。如上所述,然后您可以使用脚本来管理哪些摄像机和场景行为处于活动状态。
如果你细心的话,你真的不需要两个单独的场景。 "fake"一个场景切换可能就够了
没有代码很难给出完整的答案,但您应该使用 unity 文档或 youtube 查看以下内容:
- PlayerPrefs,这是保存数据的一种方式,虽然我认为它并不完全安全,即能够从文本文件进行编辑。
- Serializable,这显然比playerprefs好。
- DonDestroyOnLoad,可以将信息携带到多个场景。
- 静态变量,再次不确定这是否对您的特定问题有所帮助。
我一直在用 Unity3D 开发棋盘式游戏。主场景是棋盘,其中存储了每个玩家的数据和当前(随机生成的)棋盘。
我打算在游戏中添加小游戏,例如当着陆在棋盘上的特定 space 时。自然地,我想在一个单独的场景中编写迷你游戏。有没有一种方法可以在不丢失当前场景实例的情况下执行此操作,从而保持当前场景的状态?
提前致谢:)
简答:不,但可能有另一种方法可以满足您的需求。
对 Application.LoadLevel
的基本调用将在加载下一个场景之前销毁当前场景。这不是你想要的。
如果您的迷你游戏相对简单,您可以使用 Instantiate
引入预制件并在远离场景其余部分的地方生成它。您甚至可以使用脚本切换到另一个摄像机、切换播放器控件和场景中的其他交互,等等。迷你游戏完成后,您可以销毁或禁用您带来的任何东西,并重新启用主场景中需要打开的任何东西。
您可以创建一个单独的场景并调用 Application.LoadLevelAdditive
加载该场景 而不会 破坏当前场景。如上所述,然后您可以使用脚本来管理哪些摄像机和场景行为处于活动状态。
如果你细心的话,你真的不需要两个单独的场景。 "fake"一个场景切换可能就够了
没有代码很难给出完整的答案,但您应该使用 unity 文档或 youtube 查看以下内容:
- PlayerPrefs,这是保存数据的一种方式,虽然我认为它并不完全安全,即能够从文本文件进行编辑。
- Serializable,这显然比playerprefs好。
- DonDestroyOnLoad,可以将信息携带到多个场景。
- 静态变量,再次不确定这是否对您的特定问题有所帮助。