public static CinemaJsonData LoadData(CinemaType type, string dataPath) { CinemaJsonData result = null; switch (type) { case CinemaType.Live: result = Persistence.json.LoadFile <CinemaJsonData>(dataPath); break; case CinemaType.Anchor: result = Persistence.json.LoadFile <AnchorCinemaJsonData>(dataPath); break; case CinemaType.Camera: result = Persistence.json.LoadFile <CameraCinemaJsonData>(dataPath); break; } return(result); }
//读取本地的动画相关json数据并缓存 private void _LoadAndCacheCinemaJsonData() { cinemaIdMapCinemaJsonData.Clear(); cinemaNameMapCinemaJsonData.Clear(); cinemaIdMapCinemaName.Clear(); cinemaTypeMapCinemaIds.Clear(); npcIdMapCinemaIds.Clear(); cinemaListData = null; //加载cinema_list数据 cinemaListData = Persistence.json.LoadFile <CinemaListJsonData>(CinemaDataCommon.GetCinemaListFullPath()); int count = 0; if (null != cinemaListData) { count = cinemaListData.cinema_list.Length; } string cinemaJsonFullPath = ""; for (int i = 0; i < count; i++) { var lData = cinemaListData.cinema_list[i]; cinemaJsonFullPath = CinemaDataCommon.GetCinemaJsonFileFullPath(lData.path); CinemaJsonData cinemaJsonData = CinemaJsonData.LoadData(lData.type, cinemaJsonFullPath); //缓存数据1 CinemaJsonData tmpCinemaJsonData = null; if (!cinemaIdMapCinemaJsonData.TryGetValue(lData.id, out tmpCinemaJsonData)) { cinemaIdMapCinemaJsonData.Add(lData.id, cinemaJsonData); } else { cinemaIdMapCinemaJsonData[lData.id] = cinemaJsonData; } //缓存数据2 CinemaJsonData tmpCinemaJsonData2 = null; if (!cinemaNameMapCinemaJsonData.TryGetValue(lData.path, out tmpCinemaJsonData2)) { cinemaNameMapCinemaJsonData.Add(lData.path, cinemaJsonData); } else { cinemaNameMapCinemaJsonData[lData.path] = cinemaJsonData; } //缓存数据3 string tempName = ""; if (!cinemaIdMapCinemaName.TryGetValue(lData.id, out tempName)) { cinemaIdMapCinemaName.Add(lData.id, lData.path); } else { cinemaIdMapCinemaName[lData.id] = lData.path; } //缓存数据4 List <int> tempList; if (!cinemaTypeMapCinemaIds.TryGetValue(lData.type, out tempList)) { cinemaTypeMapCinemaIds[lData.type] = new List <int>(); } if (!cinemaTypeMapCinemaIds[lData.type].Contains(lData.id)) { cinemaTypeMapCinemaIds[lData.type].Add(lData.id); } //缓存数据5 List <int> tempList2; if (cinemaJsonData is CameraCinemaJsonData) { int[] npcIds = (cinemaJsonData as CameraCinemaJsonData).hideNpcIds; if (null != npcIds && npcIds.Length > 0) { for (int j = 0; j < npcIds.Length; j++) { int npcId = npcIds[j]; if (!npcIdMapCinemaIds.TryGetValue(npcId, out tempList2)) { npcIdMapCinemaIds[npcId] = new List <int>(); } npcIdMapCinemaIds[npcId].Add(lData.id); } } } } }