官方说明:将任意类型的数据以树状结构的形式进行保存,用于管理游戏运行时的各种数据。
数据结点存储的是游戏运行时数据,不会保存到本地。这一块功能,Demo里面没有使用。
根节点可以添加任意子节点,子节点也可添加子节点。每个节点只能存储一个数据,这个数据可以是任意类型,根节点不能添加数据。如果多次设置数据,则只会保存最后一次的数据及其类型。
下面看下数据结点相关API调用
添加节点:
GameEntry.DataNode.GetOrAddNode(“SoundGroup”);
添加数据:
Node03.SetData(“QQQQ”);
Node03.GetOrAddChild(“所属组件名”).SetData(“UIComponent”);
添加节点和数据:
GameEntry.DataNode.SetData(“UIGroup”, “QQQQ”);
获取数据:
Node03.GetChild(“Nums”).GetData());
子节点数量:
Node02.ChildCount;
节点全名:
Node03.GetChild(“Nums”).FullName;
删除节点:
GameEntry.DataNode.RemoveNode(“UIGroup”);
删除节点的第index个子节点:
GameEntry.DataNode.GetNode(“EntityGroup”).RemoveChild(1);
GameEntry.DataNode.GetNode(“SoundGroup”).RemoveChild(“Nums”);
清除节点:
GameEntry.DataNode.GetNode(“EntityGroup”).Clear();
清除全部数据节点:
GameEntry.DataNode.Clear();
下面是写的例子及打印日志,熟悉一下使用
IDataNode Node01 = GameEntry.DataNode.GetOrAddNode(“SoundGroup”);
IDataNode Node02 = GameEntry.DataNode.GetOrAddNode(“EntityGroup”);
//IDataNode Node03 = GameEntry.DataNode.GetOrAddNode(“UIGroup”);
GameEntry.DataNode.SetData(“UIGroup”, “QQQQ”);
IDataNode Node03 = GameEntry.DataNode.GetNode(“UIGroup”);
Node01.GetOrAddChild(“所属组件名”).SetData(“SoundComponent”);
Node02.GetOrAddChild(“所属组件名”).SetData(“EntityComponent”);
Node03.SetData(“QQQQ”);
Node03.GetOrAddChild(“所属组件名”).SetData(“UIComponent”);
Node03.GetOrAddChild(“所属组件名”).GetOrAddChild(“TTT”).SetData(“HHHHHHH”);
Node01.GetOrAddChild(“Nums”).SetData(10);
Node02.GetOrAddChild(“Nums”).SetData(20);
Node03.GetOrAddChild(“Nums”).SetData(40);
Node03.GetOrAddChild(“Nums”).SetData(“BB”);
Debug.LogError(“-------------------------------------”);
Debug.LogError(Node02.Name);
Debug.LogError(Node02.ChildCount);
Debug.LogError(Node03.GetChild(“Nums”).FullName);
Debug.LogError(Node03.GetData());
Debug.LogError(Node03.GetChild(“Nums”).GetData());
Debug.LogError(Node03.GetChild(“所属组件名”).GetData());
Debug.LogError(Node03.GetChild(“所属组件名”).GetChild(“TTT”).GetData());
Debug.LogError(“-------------------------------------”);
GameEntry.DataNode.RemoveNode(“UIGroup”);
GameEntry.DataNode.GetNode(“EntityGroup”).RemoveChild(1);
GameEntry.DataNode.GetNode(“SoundGroup”).RemoveChild(“Nums”);
Debug.LogError(GameEntry.DataNode.GetNode(“UIGroup”));
Debug.LogError(Node02.ChildCount);
Debug.LogError(GameEntry.DataNode.GetNode(“EntityGroup”).GetChild(0).GetData());
Debug.LogError(GameEntry.DataNode.GetNode(“SoundGroup”).GetChild(“所属组件名”).GetData());
Debug.LogError(“-------------------------------------”);
GameEntry.DataNode.GetNode(“EntityGroup”).Clear();
Debug.LogError(Node02.ChildCount);
GameEntry.DataNode.Clear();
Debug.LogError(GameEntry.DataNode);