//using System.Collections.Generic; //using UnityEngine; //public class AreaReader : MonoBehaviour //{ // // 假设你把 JSON 数据存储在 Resources 文件夹下 // public TextAsset jsonFile; // 在 Unity 编辑器中将文件拖拽到这个字段 // void Start() // { // // 解析 JSON 数据并输出 // Dictionary locationDictionary = ParseJSON(jsonFile.text); // // 输出字典中的数据 // foreach (var location in locationDictionary) // { // Debug.Log("ID: " + location.Key); // Debug.Log("Note: " + location.Value.Note); // Debug.Log("Name: " + location.Value.Name); // Debug.Log("Scene: " + location.Value.Scene); // Debug.Log("NpcRatio: " + location.Value.NpcRatio); // Debug.Log("Oversee: " + location.Value.Oversee); // Debug.Log("RoleLimit: " + location.Value.RoleLimit); // Debug.Log("Level: " + location.Value.Level); // // 打印 RoleLimit 字段的数据(如果有) // if (!string.IsNullOrEmpty(location.Value.RoleLimit)) // { // Debug.Log("RoleLimit (split by '|'): "); // string[] roleLimitParts = location.Value.RoleLimit.Split('|'); // foreach (var part in roleLimitParts) // { // Debug.Log(part); // 打印每个 RoleLimit 部分 // } // } // // 如果 NpcRatio 或 Oversee 是字符串,进行适当的处理 // if (!string.IsNullOrEmpty(location.Value.NpcRatio)) // { // Debug.Log("NpcRatio: " + location.Value.NpcRatio); // } // if (!string.IsNullOrEmpty(location.Value.Oversee)) // { // Debug.Log("Oversee: " + location.Value.Oversee); // } // } // } // // 解析 JSON 字符串 // Dictionary ParseJSON(string json) // { // // 使用 Unity 的 JsonUtility 解析 JSON // LocationData[] locationArray = JsonHelper.FromJson(json); // Dictionary locationDictionary = new Dictionary(); // foreach (var location in locationArray) // { // locationDictionary[location.ID] = location; // } // return locationDictionary; // } //} //// 帮助类,用于解析 JSON 数组 //public static class JsonHelper //{ // public static T[] FromJson(string json) // { // // 为了使 JsonUtility 解析数组,包裹成一个对象数组 // json = "{\"items\":" + json + "}"; // Wrapper wrapper = JsonUtility.FromJson>(json); // return wrapper.items; // } // [System.Serializable] // private class Wrapper // { // public T[] items; // } //} //[System.Serializable] //public class LocationData //{ // public int ID; // public string Note; // public int Name; // public int Scene; // public string NpcRatio; // public string Oversee; // public string RoleLimit; // public int Level; //}