protected internal override void OnEnter(IFsm <IProcedureManager> procedureOwner) { base.OnEnter(procedureOwner); //根据绝对路径设置与获取数据 DataNodeComponent dataComponent = GameEntry.GetComponent <DataNodeComponent>(); VarString var1 = new VarString(); var1.SetValue("Ellan"); dataComponent.SetData <VarString> ("Player.Name", var1); string playerName = dataComponent.GetData <LocalVariable <string> >("Player.Name").Value; Log.Info(playerName); //根据相对路径设置与获取数据 IDataNode playerNode = dataComponent.GetNode("Player"); VarInt var2 = new VarInt(); var2.SetValue(99); dataComponent.SetData <VarInt>("Level", var2, playerNode); int playerLevel = dataComponent.GetData <VarInt>("Level", playerNode).Value; Log.Info(playerLevel); //直接通过数据结点来操作 VarInt var3 = new VarInt(); var3.SetValue(1000); IDataNode playerExpNode = playerNode.GetOrAddChild("Exp"); playerExpNode.SetData(var3); int playerExp = playerExpNode.GetData <VarInt>().Value; Log.Info(playerExp); }
private void Start() { DataNodeComponent dataNodeComponent = GameEntry.GetComponent <DataNodeComponent>(); // 使用数据结点组件,直接通过绝对路径获取或设置数据 dataNodeComponent.SetData <VarString>("Player.Name", "Ellan"); string playerName = dataNodeComponent.GetData <VarString>("Player.Name"); Log.Info("Player name is {0}.", playerName); // 使用数据结点组件,通过参照某个数据结点和相对路径获取或设置数据 IDataNode playerNode = dataNodeComponent.GetNode("Player"); dataNodeComponent.SetData <VarInt>("Level", 99, playerNode); int playerLevel = dataNodeComponent.GetData <VarInt>("Level", playerNode); Log.Info("Player level is {0}.", playerLevel.ToString()); // 使用数据结点组件获取数据结点后,通过数据结点的接口进行更多操作。 IDataNode playerExpNode = playerNode.GetOrAddChild("Exp"); playerExpNode.SetData <VarInt>(1000); int playerExp = playerExpNode.GetData <VarInt>(); Log.Info("Player exp is {0}.", playerExp.ToString()); }
/// <summary> /// 获取数据结点的数据。 /// </summary> /// <param name="path">相对于 node 的查找路径。</param> /// <param name="node">查找起始结点。</param> /// <returns>数据结点的数据。</returns> public Variable GetData(string path, IDataNode node) { IDataNode current = GetNode(path, node); if (current == null) { throw new Exception(string.Format("Data node is not exist, path '{0}', node '{1}'.", path, (node != null ? node.FullName : string.Empty))); } return(current.GetData()); }
/// <summary> /// 根据类型获取数据结点的数据。 /// </summary> /// <typeparam name="T">要获取的数据类型。</typeparam> /// <param name="path">相对于 node 的查找路径。</param> /// <param name="node">查找起始结点。</param> /// <returns>指定类型的数据。</returns> public T GetData <T>(string path, IDataNode node) where T : Variable { IDataNode current = GetNode(path, node); if (current == null) { throw new GameFrameworkException(Utility.Text.Format("Data node is not exist, path '{0}', node '{1}'.", path, node != null ? node.FullName : string.Empty)); } return(current.GetData <T>()); }
public T GetData <T>(string path, IDataNode dataNode) { IDataNode current = GetNode(path, dataNode); if (current == null) { Debuger.LogError("get Data Node Error Path :" + path); return(default(T)); } return(current.GetData <T>()); }
private void SetNextElement(IDataNode node, string name, string ns, string prefix) { this.internalNodeType = ExtensionDataNodeType.Element; this.nextElement = this.GetNextElement(); this.nextElement.localName = name; this.nextElement.ns = ns; this.nextElement.prefix = prefix; if (node == null) { this.nextElement.attributeCount = 0; this.nextElement.AddAttribute("i", "http://www.w3.org/2001/XMLSchema-instance", "nil", "true"); this.internalNodeType = ExtensionDataNodeType.NullElement; } else if (!this.CheckIfNodeHandled(node)) { this.AddDeserializedDataNode(node); node.GetData(this.nextElement); if (node is XmlDataNode) { this.MoveNextInXml((XmlDataNode)node); } } }
void SetNextElement(IDataNode node, string name, string ns, string prefix) { this.internalNodeType = ExtensionDataNodeType.Element; nextElement = GetNextElement(); nextElement.localName = name; nextElement.ns = ns; nextElement.prefix = prefix; if (node == null) { nextElement.attributeCount = 0; nextElement.AddAttribute(Globals.XsiPrefix, Globals.SchemaInstanceNamespace, Globals.XsiNilLocalName, Globals.True); this.internalNodeType = ExtensionDataNodeType.NullElement; } else if (!CheckIfNodeHandled(node)) { AddDeserializedDataNode(node); node.GetData(nextElement); if (node is XmlDataNode) { MoveNextInXml((XmlDataNode)node); } } }
void SetNextElement(IDataNode node, string name, string ns, string prefix) { this.internalNodeType = ExtensionDataNodeType.Element; nextElement = GetNextElement(); nextElement.localName = name; nextElement.ns = ns; nextElement.prefix = prefix; if (node == null) { nextElement.attributeCount = 0; nextElement.AddAttribute(Globals.XsiPrefix, Globals.SchemaInstanceNamespace, Globals.XsiNilLocalName, Globals.True); this.internalNodeType = ExtensionDataNodeType.NullElement; } else if (!CheckIfNodeHandled(node)) { AddDeserializedDataNode(node); node.GetData(nextElement); if (node is XmlDataNode) MoveNextInXml((XmlDataNode)node); } }
private void SetNextElement(IDataNode node, string name, string ns, string prefix) { this.internalNodeType = ExtensionDataNodeType.Element; this.nextElement = this.GetNextElement(); this.nextElement.localName = name; this.nextElement.ns = ns; this.nextElement.prefix = prefix; if (node == null) { this.nextElement.attributeCount = 0; this.nextElement.AddAttribute("i", "http://www.w3.org/2001/XMLSchema-instance", "nil", "true"); this.internalNodeType = ExtensionDataNodeType.NullElement; } else if (!this.CheckIfNodeHandled(node)) { this.AddDeserializedDataNode(node); node.GetData(this.nextElement); if (node is XmlDataNode) { this.MoveNextInXml((XmlDataNode) node); } } }
public object GetData(GetDataEventArgs args) { return(assetManager.GetData(args)); }