using UnityEngine; using static XPlugin.Data.JsonLiteDB.JsonLiteDB; public class GameLevelInfo { /// /// 区域id /// public int AreaId; /// /// 宠物id随机范围 /// public int[] PetId = null; /// /// 宠物初始(x, y, z, 旋转, 大小,等级, 状态) /// public float[] PetInit; /// /// 怪物id随机范围 /// public int[] EnemyId = null; /// /// 怪物初始(x,y,z,大小,旋转,等级,状态) /// public float[] EnemyInit; /// /// 复活点 /// public Vector3 RevivePoint = Vector3.zero; /// /// 笼子初始(x,y,z,旋转) /// public float[] CageInit = null; /// /// 战斗区域初始(x,y,z,长,高,宽) /// public float[] BattleAreaInit = null; public GameLevelInfo(TableReader table) { AreaId = table["AreaId"].OptInt(); PetId = ParseStringToIntArray(table["PetId"].OptString("")); PetInit = ParseStringToFloatArray(table["PetInit"].OptString("")); EnemyId = ParseStringToIntArray(table["EnemyId"].OptString("")); EnemyInit = ParseStringToFloatArray(table["EnemyInit"].OptString("")); RevivePoint = StringToVector(table["RevivePoint"].OptString("")); CageInit = ParseStringToFloatArray(table["CageInit"].OptString("")); BattleAreaInit = ParseStringToFloatArray(table["BattleAreaInit"].OptString("")); } public Vector3 StringToVector(string input) { if (input == "") { return Vector3.zero; } // 去掉字符串中的括号和空格 input = input.Replace("(", "").Replace(")", "").Replace(" ", ""); // 将字符串按逗号分割成三个部分 string[] parts = input.Split(','); // 将每个部分解析为浮点数 float x = float.Parse(parts[0]); float y = float.Parse(parts[1]); float z = float.Parse(parts[2]); // 创建并返回 Vector3 return new Vector3(x, y, z); } int[] ParseStringToIntArray(string input) { if (input == "") { return null; } string[] elements = input.Replace("[", "").Replace("]", "").Split(','); int[] intArray = new int[elements.Length]; for (int i = 0; i < elements.Length; i++) { intArray[i] = int.Parse(elements[i]); } return intArray; } float[] ParseStringToFloatArray(string input) { if (input == "") { return null; } string[] elements = input.Replace("(", "").Replace(")", "").Split(','); float[] floatArray = new float[elements.Length]; for (int i = 0; i < elements.Length; i++) { floatArray[i] = float.Parse(elements[i]); } return floatArray; } }