Beispiel #1
0
    public int Compare(object e1, object e2)
    {
        SingleEffectEvla singleEffectEvla1 = e1 as SingleEffectEvla;
        SingleEffectEvla singleEffectEvla2 = e2 as SingleEffectEvla;

        if (singleEffectEvla1 == null || singleEffectEvla2 == null)
        {
            throw new ArgumentException("null argument");
        }

        EffectEvlaData2 effectEvlaData1 = singleEffectEvla1.GetEffectEvlaData();
        EffectEvlaData2 effectEvlaData2 = singleEffectEvla2.GetEffectEvlaData();

        double pixRate1 = effectEvlaData1.GetPixRate();
        double pixRate2 = effectEvlaData2.GetPixRate();

        if (pixRate1 < pixRate2)
        {
            return(1);
        }
        if (pixRate1 > pixRate2)
        {
            return(-1);
        }
        return(0);
    }
Beispiel #2
0
    public string GetEffectPathShowNow()
    {
        SingleEffectEvla singleEffectEvla = GetSingleEffectEvlaNow();

        if (singleEffectEvla != null)
        {
            return(singleEffectEvla.GetEffectEvlaData().effectPath);
        }

        return("没有显示的特效");
    }
Beispiel #3
0
    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;
    }
Beispiel #4
0
    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();
            }
        }
    }