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);
    }
Exemple #2
0
        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);
         }
     }
 }
Exemple #10
0
 public object GetData(GetDataEventArgs args)
 {
     return(assetManager.GetData(args));
 }