教程原地址:https://catlikecoding.com/unity/tutorials/object-management/persisting-objects/
这里主要分享看教程过程中,我认为比较干货的部分。如果想看更详细的请点击上面这个链接。
如何写游戏的Save以及Load功能
1.使用Paht.Combine可以连接两个字段,适合创建路径时使用
savePath = Path.Combine(Application.persistentDataPath, "saveFile");
//得到路径C:/Users/Administrator/AppData/LocalLow/DefaultCompany/Default\saveFile
2.当已经明确新建对象的类型的时候,可以使用var关键字,例如:
var writer = new BinaryWriter(File.Open(savePath, FileMode.Create));
3.存储记录和读取记录分别要用到BinaryWriter和BinaryReader类,2个都是Systems.IO下的类
void Save () {
using (
var writer = new BinaryWriter(File.Open(savePath, FileMode.Create))
) {}
}
void Load () {
using (
var reader = new BinaryReader(File.Open(savePath, FileMode.Open))
) {}
}
//这里using起一个保护作用,等同于下面语句
var writer = new BinaryWriter(File.Open(savePath, FileMode.Create);
try { … }
finally {
if (writer != null) {
((IDisposable)writer).Dispose();
}
}
之后,可以用BinaryWriter类下的.write和BinaryReader类下的.read去读写数据。
数据是以固定顺序的形式存储到save文件里的。(打个比方如下图)所以当你改变储存内容格式时,需要考虑之前数据的顺序否则会读取出错,或者索性把保存文件删了重新创建新的保存文件。
以上,希望对大家的学习有帮助。