unity游戏开发学习-新手存读档

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Le_eG/article/details/79359217

或是学之初,无所畏惧;或是梦之久,难以平复。终鼓足勇气,放下些许懒散,着手开始我的侠客之旅。从放假回家已有一段时间,关于梦想的实现,也初有眉目。但随着功能一步一步地实现,心情却是愈加急躁。以至今日,竟完全无法静心做些什么。于是跑来写下些什么,聊以放松。

----------------------------------------------------------------------------------------------------------------------------------

例:存储主角信息

1.声明主角类

[System.Serializable]//此类创建的对象可以串行化
public class player{
/****基本属性****/
/****一些类方法****/
}

2.创建游戏对象

static public _player=new player();//声明为全局静态变量

3.声明存读档类

[System.Serializable]
public class saveandload{
public player sl_player;//用于接收玩家角色信息
}

4.存档操作

public void save(){
saveandload s = new saveandload ();//saveandload类实例化
Stream stream = File.Open ("save.dat",FileMode.Create);//创建存档文件
BinaryFormatter bf = new BinaryFormatter ();
bf.Serialize (stream,s);//进行二进制序列化,写入文件
stream.Close ();
}

5.读档操作

public void load(){
Stream stream = File.Open ("save.dat",FileMode.Open);//打开存档文件
BinaryFormatter bf = new BinaryFormatter ();
saveandload s =(saveandload) bf.Deserialize (stream) as saveandload;//对文件反序列化
staticobject._player = s._player;//获取存档中的角色信息
stream.Close ();
}

6.其它

1).需要引用的命名空间:

using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

2).对于类中不想存储的属性,可用[NonSerizlized]进行标志,例:

[System.Serializable]//此类创建的对象可以串行化
public class player{
/****基本属性****/
string name;
[System.NoSerializable]
int temp;//temp属性不会被串行化
/****一些类方法****/
}






猜你喜欢

转载自blog.csdn.net/Le_eG/article/details/79359217
今日推荐