Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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);
    }