一.前言
每个游戏都有数据节点中心,数据节点的作用其实就是游戏运行时的一些缓存数据,比如用户登录的信息,背包信息,任务进度等等。数据存储的结构一般都是字典转存json/xml,这样我们直接用json序列化工具,很方便的实现数据的读取,修改和持久化。不过本文将给你带来一个不一样的数据存储方式:“树形结构存储”。其实树形存储结构我们并不陌生,json和xml的多级结构其实就时一种树形结构。我们的内存堆是以树形结构来存储的,数据库也常以树形结构来做数据的存储。
树形存储结构示意图:
下面来介绍我们本文的主角,DataNode
,树形存储结构基本单位:"数据节点类"DataNode
,我们可以理解为就是树形结构的每个节点类,正如类名所描述。下面先来看下DataNode的类的基本结构。
二.DataNode.cs
DataNode类的基本结构
我们可以发现,每个Node节点,除了m_Data存储数据外,还同时作为一个链接节点,存储了它的父节点Parent和子节点列表m_Childs。
/// 数据结点
public class Da