protected override int init(AnalyzeWrap wrap, ShaderAnalyzeParams param)
        {
            m_CompiledShaderPath   = ShaderAnalyzerUtil.GetCompiledShaderPath(param);
            m_AnalyzedDataFilePath = ShaderAnalyzerUtil.GetChacheFileName(param);
            m_MD5 = ShaderAnalyzerUtil.GenerateMD5(m_CompiledShaderPath);

            if (!Directory.Exists(Constant.CacheFolder))
            {
                Directory.CreateDirectory(Constant.CacheFolder);
                return(create());
            }
            else
            {
                if (!File.Exists(m_AnalyzedDataFilePath))
                {
                    return(create());
                }
                else
                {
                    CacheHead head = ShaderAnalyzerUtil.GetHeadFromCache(m_AnalyzedDataFilePath);
                    if (head == null || Constant.Version != head.Version || head.MD5 != m_MD5)
                    {
                        return(create());
                    }
                    else
                    {
                        return(loadFromCache(head));
                    }
                }
            }
        }
        /// <summary>
        /// 从缓存中读取解析数据
        /// </summary>
        /// <param name="head"></param>
        private int loadFromCache(CacheHead head)
        {
            string json = File.ReadAllText(m_AnalyzedDataFilePath).Replace(head.Head, string.Empty);

            m_AnalyzeWrap.AnalyzedData = UnityEngine.JsonUtility.FromJson <AnalyzedData>(json);

            return(InitComplete);
        }