• 数据的存储与解析


    PlayerPrefs存储数据

    PlayerPrefs的存储方式非常简单,但可用性不强,一般只用于调试过程存储少量数据,很少大范围使用

    适用设备:Mac OSX, Linux, Windows,Web Players 

    存储机制:Key-Value (类似于字典的键值对,通过键值索引到相应数据)

    可存储变量类型: int, float, string 

    常用方法: SetFloat     存储float 类型的数据                 GetFloat        获取float 类型的数据

                     SetInt         存储Int类型的数据                     GetInt            获取Int 类型的数据

                     SetString    存储string 类型的数据               GetString      获取string 类型的数据

                     DeleteAll     删除所有PlayerPrefs数据          HasKey        判断是否存在该Key值的数据

    简单代码示例如下,是不是很简单?

    void ExamplePlayerPrefs()
    {
        PlayerPrefs.SetFloat("PlayerScore", 10f);
        Debug.Log(PlayerPrefs.GetFloat("PlayerScore"));
    }

    XML的存储与解析

    (1)XMl常用类及其常用属性和方法

    XmlNode 

    InnerText                           获取或设置节点及其所有子节点的值(仅元素节点拥有)

    Value                                 获取或设置节点的值(仅属性节点拥有)

    AppendChild                      将指定的节点添加到该节点的子节点列表的末尾

    ChildNodes                        获取节点的所有子节点

    FirestChild                        

    XmlDocument

    CreateXmlDeclaration       创建一个具有指定值的XmlDeclaration节点

    CreateElement                   创建具有指定名称的元素

    CreateNode                       创建具有指定的节点类型的XmlNode

    AppendChild                      将指定节点添加到末尾(继承自XmlNode)

    Save                                  将Xml文档保存到指定的文件

    Load                                  从指定的URL加载Xml文档

    LoadXml                            从指定的字符串加载Xml文档

    XmlElement

    SetAttribute                       设置具有指定名称的特性的值

    HasAttributes                    判断该元素节点是否具有属性

    GetAttribute                       返回具有指定名称的属性值

    (2)XML数据的生成步骤

    在Unity引擎中如何生成本地XML数据?

    第一步:引入C#的命名空间 System.Xml

    第二步:生成XML文档(XmlDocument类)

    第三步: 生成根元素(XmlElement类) 添加给文档对象

    第四步:循环生成子元素添加给父元素

    第五步:将生成的XML文档保存

    (3)XML解析步骤

    在解析时注意, 需要根据Xml文件的结构创建好对应的数据模型,去接受解析出来的数据!!! 

    Json的存储与解析

    Json一般使用两个类库,一个System.Json(便于Json生成),一个是LitJson(便于Json解析)

    Json生成

    复制代码
    void LitCtreatJson()
        {   
            JsonData hero = new JsonData();
            hero["HeroName"] = "诺克萨斯";
            hero["Hp"] = 100;
            hero["attack"] = 40;
            hero["Skills"] = new JsonData();
    
            JsonData skill1 = new JsonData();
            skill1["KeyCode"] = "Q";
            skill1["Name"] = "大杀四方";
            skill1["Mp"] = 20;
            skill1["cd"] = 8;
            hero["Skills"].Add(skill1);
    
            JsonData skill2 = new JsonData();
            skill2["KeyCode"] = "W";
            skill2["Name"] = "致残打击";
            skill2["Mp"] = 40;
            skill2["cd"] = 5;
            hero["Skills"].Add(skill2);
    
            JsonData skill3 = new JsonData();
            skill3["KeyCode"] = "E";
            skill3["Name"] = "无情铁手";
            skill3["Mp"] = 10;
            skill3["cd"] = 9;
            hero["Skills"].Add(skill3);
            JsonData skill4 = new JsonData();
            skill4["KeyCode"] = "R";
            skill4["Name"] = "诺克萨斯断头台";
            skill4["Mp"] = 120;
            skill4["cd"] = 60;
            hero["Skills"].Add(skill4);
        }
    复制代码

    Json解析

    复制代码
     void LitParseJson()
        {
            FileInfo file =new FileInfo(Application.dataPath + "/LoL.json");
            StreamReader sr = new StreamReader(file.OpenRead(), Encoding.UTF8);
            string content = sr.ReadToEnd();
            JsonData data= JsonMapper.ToObject(content);
            foreach (JsonData item in data["Skills"])
            {
                print(item["name"]);
            }
            Hero hero;
            hero =  JsonUtility.FromJson<Hero>(content);
            sr.Close();
            sr.Dispose();
        }
    复制代码
  • 相关阅读:
    BUUCTF-web ZJCTF,不过如此
    BUUCTF-web ikun(Python 反序列化)
    BUUCTF-web web1 (无列名注入)
    求前 n 个正整数的 k 次方和
    增根和失根:解方程的逻辑问题
    斜二测画法的经验公式
    像素转换mm
    正则表达式收集
    (转)mssql sp_addextendedproperty 用法,作用
    (转).net平台下垃圾回收机制
  • 原文地址:https://www.cnblogs.com/hpu001/p/10131394.html
Copyright © 2020-2023  润新知