Persistence Scene常用于在游戏里处加载各种Manager,还可以用来在Scene之间保存一些数据(Playerpref)。

PlayerPref只能储存Int,float,string三种数据。

playerpref详细介绍


新建脚本命名为GameControl,打开并编辑

•Persistence - Saving and Loading Data


这就是基础的通过DontDestroyOnLoad在场景间保存数据的方式。

新建空对象GameControl,挂上该脚本,并赋值100和1000。

测试,从level1切换到level2,GameControl里的两个数据依然存在。但GameControl是在Level1里创建的,从level1切换到level2数据可以保存,可要是从level2切换到level1就不行了(两个GameControl)。

那我们可以把GameControl写出单例,再把该GameObject保存为Prefab放在level2里。

修改脚本

•Persistence - Saving and Loading Data


测试,现在可以看到每个场景都只有一个GameControl,且是第一个场景加载的那个GameControl,因为不是instance的都被destroy了(应用见2D Roguelike GameManager 单例)。


接下来是以dat形式把两个数据save和load。包括新建类并serializable,把数据转换成binaryFormatter并写入,存入PersistentDataPath等。(见json使用,几乎是一样的原理)具体的流程就不放了,太繁琐。

•Persistence - Saving and Loading Data


最后,原来是讲的PersistenPath,而不是PersistenScene,好吧。


完毕。









相关文章: