我正在寻找一种跨场景保存的方法(我需要保存一个级别是否已完成以解锁菜单上的下一个级别)

问题描述 投票:0回答:1

我正在为此苦苦挣扎,无法在网上找到教程,我需要游戏在返回菜单时知道教程是否已完成,以便我可以解锁“一级”按钮,但每次我更改场景时,一切都会改变重置。我所需要的只是一种方法,让场景不会重置,并互相谈论其他场景中发生的事情。有没有办法存储所有场景都可以访问的数据?

我看过一些教程,但它们似乎没有帮助。

c# unity-game-engine save game-development
1个回答
0
投票

保存和加载数据的方法有很多种。最简单的是将数据保存在 PlayerPrefs

 PlayerPrefs.SetInt(KeyName, Value); // for saving an int value
 PlayerPrefs.SetString(KeyName, Value); // for saving a string value
 PlayerPrefs.GetString("KeyName"); // for reading a saved string
 PlayerPrefs.GetInt("KeyName"); // for reading a saved int

如果您要保存和读取的数据有点复杂,我建议使用Scriptable Objects。但请注意,从可编写脚本的对象中保存和读取的数据只能在编辑器中访问。为了真正利用脚本对象的力量,您必须序列化使用脚本对象创建的数据容器并写入文件并在需要时从文件中恢复。

请注意,当清理应用程序数据或删除并重新安装应用程序时,这些值会重置。为了跨多个设备保存数据或确保设备上的数据不会丢失,您可以将其保存在您自己的服务器上并使用 REST API 访问它。

这需要您创建用于处理 REST API 的 Web 服务。查看 Unity Web Request 了解如何实现它。

© www.soinside.com 2019 - 2024. All rights reserved.