Persistence Scene常用于在游戏里处加载各种Manager,还可以用来在Scene之间保存一些数据(Playerpref)。
PlayerPref只能储存Int,float,string三种数据。
新建脚本命名为GameControl,打开并编辑
这就是基础的通过DontDestroyOnLoad在场景间保存数据的方式。
新建空对象GameControl,挂上该脚本,并赋值100和1000。
测试,从level1切换到level2,GameControl里的两个数据依然存在。但GameControl是在Level1里创建的,从level1切换到level2数据可以保存,可要是从level2切换到level1就不行了(两个GameControl)。
那我们可以把GameControl写出单例,再把该GameObject保存为Prefab放在level2里。
修改脚本
测试,现在可以看到每个场景都只有一个GameControl,且是第一个场景加载的那个GameControl,因为不是instance的都被destroy了(应用见2D Roguelike GameManager 单例)。
接下来是以dat形式把两个数据save和load。包括新建类并serializable,把数据转换成binaryFormatter并写入,存入PersistentDataPath等。(见json使用,几乎是一样的原理)具体的流程就不放了,太繁琐。
最后,原来是讲的PersistenPath,而不是PersistenScene,好吧。
完毕。