コード例 #1
0
    private bool IsAnalserFailed(CONSISTENCY_ANALYSE_ERROR_TYPE errorType)
    {
        bool bRet = false;

        if (errorType != CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_NONE)
        {
            bRet = true;
        }

        return(bRet);
    }
コード例 #2
0
    public CONSISTENCY_ANALYSE_ERROR_TYPE AnalyseSingleAtlasConsistent(AtlasProject project, out AtlasConsistencyAnalyseResult analyseResult)
    {
        CONSISTENCY_ANALYSE_ERROR_TYPE errorType = CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_NONE;

        analyseResult = null;

        if (null == project)
        {
            return(CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_TARGETPROJECT_ERROR);
        }

        errorType = CheckProjectConsistencyInfo(project, out analyseResult);

        return(errorType);
    }
コード例 #3
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);
    }
コード例 #4
0
    public AtlasConsistencyAnalyser(AtlasConsistencyInputInfo inputInfo, out CONSISTENCY_ANALYSE_ERROR_TYPE errorType)
    {
        errorType = CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_NONE;

        do
        {
            errorType = CheckInputInfo(inputInfo);
            if (IsAnalserFailed(errorType))
            {
                break;
            }

            m_inputInfo = inputInfo;

            m_projectTable = inputInfo.ProjectTable;
        } while (false);
    }
コード例 #5
0
    private CONSISTENCY_ANALYSE_ERROR_TYPE CheckInputInfo(AtlasConsistencyInputInfo inputInfo)
    {
        CONSISTENCY_ANALYSE_ERROR_TYPE errorType = CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_NONE;

        do
        {
            if (null == inputInfo)
            {
                errorType = CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_INPUTINFO_ERROR;
                break;
            }

            if (string.IsNullOrEmpty(inputInfo.SourceSpriteDir))
            {
                errorType = CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_INPUTINFO_SOURCEAB_ERROR;
                break;
            }
        }while(false);


        return(errorType);
    }
コード例 #6
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);
    }
コード例 #7
0
    public CONSISTENCY_ANALYSE_ERROR_TYPE AnalyseAtlasConsistent(bool isNeedCheckPrefab, out AtlasConsistencyAnalyseResult analyseResult)
    {
        CONSISTENCY_ANALYSE_ERROR_TYPE errorType = CONSISTENCY_ANALYSE_ERROR_TYPE.CONSISTENCY_ANALYSE_ERROR_NONE;

        analyseResult = new AtlasConsistencyAnalyseResult();

        InitProgresser(isNeedCheckPrefab);
        int count = 1;

        foreach (var item in m_projectTable)
        {
            AtlasConsistencyAnalyseResult singleAnalyseResult = null;
            AnalyseConsistencyProgresser.GetInstance().UpdateProgress(count++);

            errorType = CheckProjectConsistencyInfo(item, out singleAnalyseResult);
            if (IsAnalserFailed(errorType))
            {
                continue;
            }

            if (singleAnalyseResult.AnalyseResult != ANALYSERESULT_TYPE.ANALYSERESULT_CONSISTENT)
            {
                analyseResult.ConsistencyInfo.AddRange(singleAnalyseResult.ConsistencyInfo);
            }
        }

        if (isNeedCheckPrefab)
        {
            bool isPrefabConsistent = false;
            List <AtlasConsistencyInfo> prefabWithoutProjectInfo = null;

            errorType = CheckPrefabConsistencyInfo(out isPrefabConsistent, out prefabWithoutProjectInfo);
            if (!IsAnalserFailed(errorType))
            {
                if (!isPrefabConsistent)
                {
                    analyseResult.ConsistencyInfo.AddRange(prefabWithoutProjectInfo);
                }
            }
        }

        foreach (var item in analyseResult.ConsistencyInfo)
        {
            if (ATLASCONSISTENCY_TYPE.ATLAS_CONSISTENT == item.ConsistencyType)
            {
                continue;
            }
            else if (ATLASCONSISTENCY_TYPE.ATLAS_CONSISTENT_WITH_PREFAB_NOTIN_SEARCHPATH_WARNING == item.ConsistencyType)
            {
                analyseResult.AnalyseResult = ANALYSERESULT_TYPE.ANALYSERESULT_CONSISTENT_WITH_WARNING;
            }
            else
            {
                analyseResult.AnalyseResult = ANALYSERESULT_TYPE.ANALYSERESULT_UNCONSISTENT;
                break;
            }
        }

        AnalyseConsistencyProgresser.GetInstance().UpdateProgress(count++);

        return(errorType);
    }