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); }