unity Serializable
时间: 2023-08-18 08:10:38 浏览: 201
Unity中的Serializable是一个属性,用于将一个类或结构体标记为可序列化的。当一个对象被标记为可序列化时,它的成员变量的值可以被保存到磁盘或在网络上进行传输,以便在稍后的时间点进行加载或还原。这在游戏开发中非常有用,因为它允许我们保存和加载游戏状态、配置数据以及进行网络通信。
要使一个类或结构体可序列化,只需在其定义前加上[Serializable]属性即可。例如:
```
[Serializable]
public class MyClass
{
public int myInt;
public string myString;
}
```
现在,我们可以创建一个MyClass的实例,并将其保存到磁盘上:
```
MyClass obj = new MyClass();
obj.myInt = 42;
obj.myString = "Hello, world!";
// 将对象保存到磁盘上
FileStream file = File.Create("data.dat");
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(file, obj);
file.Close();
```
稍后,我们可以再次加载这个对象:
```
// 从磁盘上加载对象
FileStream file = File.Open("data.dat", FileMode.Open);
BinaryFormatter formatter = new BinaryFormatter();
MyClass newObj = (MyClass)formatter.Deserialize(file);
file.Close();
// 访问加载的对象成员变量
Debug.Log(newObj.myInt); // 输出:42
Debug.Log(newObj.myString); // 输出:Hello, world!
```
通过使用Serializable属性,我们可以方便地在Unity中进行对象的序列化和反序列化操作。
阅读全文