作者:非船_725 | 来源:互联网 | 2023-08-27 14:50
一、序列化
什么是序列化呢?序列化就是把一个内存对象变为与地址无关的可传输的数据格式,通常是文本格式;反序列化反之。更通俗一点说,就是把游戏运行时保存在内存中的对象或数据输出为文本,如json等;反序列化就是把这些文本重新转换为内存中对象的数据。像本次飞碟的序列化,就是把每个关卡中飞碟的颜色,大小,发射位置和方向等等数据,转换为json文件保存在根文件夹的Data目录中,每次游戏启动都会读取序列文本,将读取到的数据作为初始化飞碟的函数的参数。现在许多大型的游戏如LOL,更新周期短,每次更新时要更新代码是不可能的,他们每次更新的是资源而不是程序,生成的exe文件是不会改变的,更改的只是json之类的文本文件。在一个类前面加上[SerializeField]说明这个类是可序列化的,也就是要和文本文件打交道的。
二、具体过程
首先,在Assets目录下新建Data文件夹,在Data文件夹下新建disk_level_1、disk_level_2、disk_level_3保存三个关卡的具体文本,新建game_info保存游戏版本信息,具体如下:
这是飞碟游戏原先版本代码:负责任链接
这是序列化后代码:不负责任链接