标签:数据库 ring 导入 block 如何 .json 属性 item href
LitJSON是一个使用C#编写的.NET库,我们可以通过它来处理JSON数据。
JSON
如果使用C#脚本的方式存储游戏内的对象数据(比如人物的基础血量、装备的名称/属性/说明、任务信息),不但不方便统管理,还不适合非技术人员(策划、美术等)进行添加、修改。
而使用JSON则可以避免这些问题。
首先,下载LitJson.dll文件,导入Unity工程中,我们就能像使用其他包一样使用LitJson了:
using LitJson;
我们接着在工程中创建一个JSON文件(Unity本身不支持直接创建,我们可以打开资源管理器创建)。
这里我创建的文件为:
items.json
我们打开刚刚创建的JSON文件,向里面添加信息:
[ { "id": 0, "title": "手枪", "value": 1, "description": "一把简易的手枪。" }, { "id": 1, "title": "冲锋枪", "value": 2, "description": "一把简易的冲锋枪。" } ]
JSON的语法非常简单。上面的代码创建了一个拥有两个条目的数组,每个条目包含id、title、value、description四个内容。详细的语法大家可以百度了解。
接着我们通过C#脚本来将JSON读取并保存到对象中:
using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using System.IO; public class ItemDatabase : MonoBehaviour { ? // 用于存储读取的JSON数据 private JsonData itemData; ? // 用于分开保存刚刚读取的数据 private List<Item> database = new List<Item>(); ? void Start () { // 读取数据,存入itemData,注意我将items.json放在根目录,放在其他地方的话记得改参数 itemData = JsonMapper.ToObject(File.ReadAllText(Application.dataPath + "/items.json")); ? // 构建数据库 ConsructItemDatabase(); ? // 这两条Debug信息用来检测我们的工作成果 Debug.Log(database[0].Description); Debug.Log(FetchItemByID(0).Title); } // 数据库构建函数 void ConsructItemDatabase() { // 遍历itemData for(int i = 0;i<itemData.Count;i++) { // 一个个将itemData的数据存入database database.Add(new Item( (int)itemData[i]["id"], itemData[i]["title"].ToString(), (int)itemData[i]["value"], itemData[i]["description"].ToString())); } } ? // 通过ID读取数据 public Item FetchItemByID(int _id) { // 遍历database for(int i=0;i<database.Count;i++) { // 查找ID if(_id == database[i].ID) { return database[i]; } } // 找不到返回null return null; } } ? // 用于存储对象信息,每一个值都和JSON中的内容对应 public class Item { public int ID { get; set; } public string Title { get; set; } public int Value { get; set; } public string Description { get; set; } ? // 构造函数 public Item(int _id,string _title,int _value,string _description) { ID = _id; Title = _title; Value = _value; Description = _description; } }
标签:数据库 ring 导入 block 如何 .json 属性 item href
原文地址:https://www.cnblogs.com/XTStarry/p/10122933.html