public override void Init(Camera camera) { CSVEffectEvlaHelper.GetInstance(); base.Init(camera); ChangeQuality(Qualitys[_qualityIndex - 1]); InitData(camera); }
void CheckAndSaveTexture(SingleEffectEvla singleEffectEvla, bool isAutoSavePic, int maxOverdrawSaveNumber) { if (!isAutoSavePic) { return; } // 获取data EffectEvlaData2 effectEvlaData2 = singleEffectEvla.GetEffectEvlaData(); double overdrawRate = effectEvlaData2.GetPixRate(); if (overdrawRate < maxOverdrawSaveNumber) { return; } CSVEffectEvlaHelper cSVEffectEvlaHelper = CSVEffectEvlaHelper.GetInstance(); string directoryPath = cSVEffectEvlaHelper.GetDirectoryPath(); FileInfo fi = new FileInfo(directoryPath); if (!fi.Directory.Exists) { fi.Directory.Create(); } string fileName = string.Format("{0}/{1}{2}.png", directoryPath, effectEvlaData2.GetEffectName(), effectEvlaData2.quality); RenderTexture activeTextrue = RenderTexture.active; RenderTexture rt = new RenderTexture(256, 256, 0, RenderTextureFormat.ARGB32); _camera.targetTexture = rt; _camera.Render(); RenderTexture.active = rt; Texture2D png = new Texture2D(rt.width, rt.height, TextureFormat.ARGB32, false); png.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0); byte[] bytes = png.EncodeToPNG(); FileStream file = File.Open(fileName, FileMode.Create); BinaryWriter writer = new BinaryWriter(file); writer.Write(bytes); file.Close(); RenderTexture.active = activeTextrue; Texture2D.DestroyImmediate(png); rt.Release(); _camera.targetTexture = null; }
public void Release() { if (isRealese) { return; } isRealese = true; for (int i = 0; i < singleEffectEvlas.Length; i++) { SingleEffectEvla singleEffectEvla = singleEffectEvlas[i]; singleEffectEvla.UnLoadEffect(); } singleEffectEvlas = null; CSVEffectEvlaHelper.GetInstance(); CSVEffectEvlaHelper.DestroyInstance(); }
public void SaveData() { // 排序 Array.Sort(singleEffectEvlas, new SingleEffectEvlaComparer2()); for (int i = 0; i < singleEffectEvlas.Length; i++) { SingleEffectEvla singleEffectEvla = singleEffectEvlas[i]; EffectEvlaData2 effectEvlaData2 = singleEffectEvla.GetEffectEvlaData(); // pixrate大于1.5的才记录 if (effectEvlaData2.GetPixRate() >= 1.5f) { CSVEffectEvlaHelper cSVEffectEvlaHelper = CSVEffectEvlaHelper.GetInstance(); cSVEffectEvlaHelper.WriteData(singleEffectEvla.GetEffectEvlaDatas()); cSVEffectEvlaHelper.Flush(); } } }