/// <summary> /// 数组 /// </summary> /// <param name="propertyName"></param> /// <param name="jsonReader"></param> /// <returns></returns> private bool ArrayDeserialize(string propertyName, JsonReader jsonReader) { if (jsonReader == null) { return(false); } if (propertyName == "specialGrids") { DeserializeArrayHelper dah = DeserializeArrayHelper.Create(); dah.IntDeserializeCallback = delegate(int index, int intValue) { if (intValue >= allGrids.Count) { Debug.LogErrorFormat("反序列化特殊格子失败,index {0} 超过最大格子数量, {1}", intValue, allGrids.Count); return; } allGrids[intValue].gridType = MapGrid.GridType.Special; }; dah.Deserialize(jsonReader, true); return(true); } return(false); }
/// <summary> /// 反序列化数组、列表 /// </summary> /// <param name="propertyName"></param> /// <param name="jsonReader"></param> /// <returns></returns> private bool ArrayDeserialize(string propertyName, JsonReader jsonReader) { if (propertyName == "battleUnits") { //先移除所有战斗单位 RemoveAllBattleUntis(); allBattleUnits = allBattleUnits ?? new List <BattleUnit>(); DeserializeArrayHelper dah = DeserializeArrayHelper.Create(); //这个数组的每个对象都是obj dah.ObjectDeserializeCallback = delegate(int index, JsonReader jr) { //反序列化每个战斗单位 BattleUnit battleUnit = SingletonRecyclePool <BattleUnit> .Get(); battleUnit.Deserialize(jr); allBattleUnits.Add(battleUnit); }; dah.Deserialize(jsonReader, true); return(true); } return(false); }