private CONSISTENCY_ANALYSE_ERROR_TYPE CheckPrefabConsistencyInfo(out bool isConsistent, out List <AtlasConsistencyInfo> consistencyInfoTbl) { CONSISTENCY_ANALYSE_ERROR_TYPE errorType = CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_NONE; isConsistent = false; consistencyInfoTbl = new List <AtlasConsistencyInfo>(); if (null == m_inputInfo) { return(CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_INPUTINFO_ERROR); } if (string.IsNullOrEmpty(m_inputInfo.AtlasPrefabDir)) { return(CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_INPUTINFO_PREFABPATH_ERROR); } List <string> prefabPathTbl = GetAllAtlasPrefabFilePath(m_inputInfo.AtlasPrefabDir); foreach (var item in m_projectTable) { string fullPath = Path.GetFullPath(item.DescribePath); fullPath = fullPath.Replace(@"\", @"/"); prefabPathTbl.Remove(fullPath); } if (prefabPathTbl.Count != 0) { foreach (var item in prefabPathTbl) { AtlasConsistencyInfo newConsistencyInfo = new AtlasConsistencyInfo(); newConsistencyInfo.ConsistencyType = ATLASCONSISTENCY_TYPE.ATLAS_UNCONSISTENT_FOR_PROJECT_NOT_EXIST; newConsistencyInfo.AtlasFilePath = item; consistencyInfoTbl.Add(newConsistencyInfo); } if (0 == consistencyInfoTbl.Count) { isConsistent = true; } } return(errorType); }
private void AnalyseConsistencyInfo(AtlasConsistencyInfo consistencyInfo, out List <string> csvData) { csvData = new List <string>(); if (null == consistencyInfo) { return; } do { string dataLine = string.Empty; switch (consistencyInfo.ConsistencyType) { //Atlas一致 case ATLASCONSISTENCY_TYPE.ATLAS_CONSISTENT: break; //Atlas一致,但Prefab不在检索目录内 case ATLASCONSISTENCY_TYPE.ATLAS_CONSISTENT_WITH_PREFAB_NOTIN_SEARCHPATH_WARNING: dataLine = "警告:" + consistencyInfo.AtlasFilePath + "一致,但对应的Prefab不在检索目录内!"; csvData.Add(dataLine); break; //Atlas不一致(Prefab不存在) case ATLASCONSISTENCY_TYPE.ATLAS_UNCONSISTENT_FOR_PREFAB_NOT_EXIST: dataLine = consistencyInfo.AtlasFilePath + "没有对应的Prefab文件!"; csvData.Add(dataLine); break; //Atlas不一致(Project不存在) case ATLASCONSISTENCY_TYPE.ATLAS_UNCONSISTENT_FOR_PROJECT_NOT_EXIST: dataLine = consistencyInfo.AtlasFilePath + "没有对应的Project文件!"; csvData.Add(dataLine); break; case ATLASCONSISTENCY_TYPE.ATLAS_UNCONSISTENT_FOR_SPRITE_NOT_SAME: dataLine = consistencyInfo.AtlasFilePath; csvData.Add(dataLine); dataLine = m_spriteInfoTag; csvData.Add(dataLine); foreach (var item in consistencyInfo.SpriteConsistencyInfoTbl) { dataLine = AnalyaseSpriteDetailData(item); csvData.Add(dataLine); } break; case ATLASCONSISTENCY_TYPE.ATLAS_UNCONSISTENT_FOR_SPRITE_NOT_SAME_WITH_PREFAB_NOTIN_SEARCHPATH_WARNING: dataLine = "警告:" + consistencyInfo.AtlasFilePath + "不一致,且对应的Prefab不在检索目录内!"; csvData.Add(dataLine); dataLine = m_spriteInfoTag; csvData.Add(dataLine); foreach (var item in consistencyInfo.SpriteConsistencyInfoTbl) { dataLine = AnalyaseSpriteDetailData(item); csvData.Add(dataLine); } break; default: break; } }while(false); }
private CONSISTENCY_ANALYSE_ERROR_TYPE CheckProjectConsistencyInfo(AtlasProject project, out AtlasConsistencyAnalyseResult analyseResult) { CONSISTENCY_ANALYSE_ERROR_TYPE errorType = CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_NONE; analyseResult = new AtlasConsistencyAnalyseResult(); if (null == project) { return(CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_TARGETPROJECT_ERROR); } PREFAB_EXIST_INFO prefabInfo = PREFAB_EXIST_INFO.PREFAB_FILE_EXIST_IN_SEARCHDIR; prefabInfo = CheckProjectWithoutPrefab(project); if (PREFAB_EXIST_INFO.PREFAB_FILE_NOT_EXIST == prefabInfo) {//Prefab不存在 AtlasConsistencyInfo consistencyInfo = new AtlasConsistencyInfo(); consistencyInfo.ConsistencyType = ATLASCONSISTENCY_TYPE.ATLAS_UNCONSISTENT_FOR_PREFAB_NOT_EXIST; consistencyInfo.AtlasFilePath = project.Path; analyseResult.AnalyseResult = ANALYSERESULT_TYPE.ANALYSERESULT_UNCONSISTENT; analyseResult.ConsistencyInfo.Add(consistencyInfo); } else {//prefab存在 bool isSpriteConsistent = true; List <SpriteConsistencyInfo> spriteConsistencyInfoTbl = null; CheckUnConsistentSpriteInProject(project, out isSpriteConsistent, out spriteConsistencyInfoTbl); if (isSpriteConsistent) { //sprite一致 if (PREFAB_EXIST_INFO.PREFAB_FILE_EXIST_NOTIN_SEARCHDIR == prefabInfo) { //Prefab不在查找目录内 AtlasConsistencyInfo consistencyInfo = new AtlasConsistencyInfo(); consistencyInfo.ConsistencyType = ATLASCONSISTENCY_TYPE.ATLAS_CONSISTENT_WITH_PREFAB_NOTIN_SEARCHPATH_WARNING; consistencyInfo.AtlasFilePath = project.Path; analyseResult.AnalyseResult = ANALYSERESULT_TYPE.ANALYSERESULT_CONSISTENT_WITH_WARNING; analyseResult.ConsistencyInfo.Add(consistencyInfo); } else { analyseResult.AnalyseResult = ANALYSERESULT_TYPE.ANALYSERESULT_CONSISTENT; } } else {//Sprite不一致 AtlasConsistencyInfo consistencyInfo = new AtlasConsistencyInfo(); if (PREFAB_EXIST_INFO.PREFAB_FILE_EXIST_NOTIN_SEARCHDIR == prefabInfo) {//Prefab不在查找目录内 consistencyInfo.ConsistencyType = ATLASCONSISTENCY_TYPE.ATLAS_UNCONSISTENT_FOR_SPRITE_NOT_SAME_WITH_PREFAB_NOTIN_SEARCHPATH_WARNING; } else {//Prefab在查找目录内 consistencyInfo.ConsistencyType = ATLASCONSISTENCY_TYPE.ATLAS_UNCONSISTENT_FOR_SPRITE_NOT_SAME; } consistencyInfo.AtlasFilePath = project.Path; consistencyInfo.SpriteConsistencyInfoTbl = spriteConsistencyInfoTbl; analyseResult.AnalyseResult = ANALYSERESULT_TYPE.ANALYSERESULT_UNCONSISTENT; analyseResult.ConsistencyInfo.Add(consistencyInfo); } } return(errorType); }