Exemplo n.º 1
0
    public static void Init()
    {
        CUnityHelper.RegisterLogCallback(LogCallback);

        CreateLogFiles();

        var logString = HobaText.Format("[systeminfo] {0}\n[applicationInfo] {1}", CLogExtension.GenerateDeviceInfo(), CLogExtension.GenerateApplicationInfo());

        WriteLogImp(logString);

        if (EntryPoint.Instance.GameCustomConfigParams.EnableLogCache4Debug && _LogDebugFormats == null)
        {
            _LogDebugFormats = new []
            {
                "<color='#ff0000'>[Error] {0} </color>\n",     // 0 LogType.Error
                "<color='#FFB90F'>[Assert] {0} </color>\n",    // 1 LogType.Assert
                "<color='#ffff00'>[Warning] {0} </color>\n",   // 2 LogType.Warning
                "<color='#ffffff'>[Log] {0} </color>\n",       // 3 LogType.Log
                "<color='#FF8247'>[Exception] {0} </color>\n", // 4 LogType.Exception
                "<color='#8B8B00'>[Unknown] {0} </color>\n",   // 未知类型
            };
        }
    }
Exemplo n.º 2
0
    private float _TotalCheck = 13.0f;            //总的检查类型

    public IEnumerable UpdateRoutine()
    {
        GameDataCheck.Instance._PanelHotUpdate.SetActive(true);
        SetAllProgress(0.0f);

        //写log
        CUnityHelper.RegisterLogCallback(ProcessExceptionReport);

        //检查AssetBundle,同时加载所有的assetbundle
        foreach (var item in CheckAssetBundle(1, "AssetBundle资源检查.txt"))
        {
            yield return(item);
        }
        yield return(new WaitForSeconds(0.2f));

        _AssetBundleInited = true;

        if (GameDataCheck.Instance._bCheckSyncLoad)
        {
            foreach (var item in CheckSyncLoadAB(2, "SyncLoad检查.txt"))
            {
                yield return(item);
            }
            yield return(new WaitForSeconds(0.2f));
        }

        if (GameDataCheck.Instance._bCheckMissing)
        {
            _InCheckMissing = true;
            foreach (var item in CheckMissingComponent(3, "Missing检查.txt"))
            {
                yield return(item);
            }
            _InCheckMissing = false;
            yield return(new WaitForSeconds(0.2f));
        }

        if (GameDataCheck.Instance._bCheckAnimator)
        {
            foreach (var item in CheckAnimatorUsed(4, "非特效下的Animator使用.csv"))
            {
                yield return(item);
            }
            yield return(new WaitForSeconds(0.2f));
        }

        //检查UI prefab
        if (GameDataCheck.Instance._bCheckUIPrefab)
        {
            foreach (var item in CheckLuaPrefab(5, "LuaPrefab资源检查.txt", "UIPrefab使用.csv"))
            {
                yield return(item);
            }
            yield return(new WaitForSeconds(0.2f));
        }

        //检查Data
        if (GameDataCheck.Instance._bCheckData)
        {
            foreach (var item in CheckLuaData(6, "LuaData资源检查.txt"))
            {
                yield return(item);
            }
        }

        yield return(new WaitForSeconds(0.2f));

        //检查Quest
        if (GameDataCheck.Instance._bCheckQuest)
        {
            foreach (var item in CheckLuaQuest(7, "LuaQuest资源检查.txt"))
            {
                yield return(item);
            }
        }

        yield return(new WaitForSeconds(0.2f));

        //检查场景资源
        if (GameDataCheck.Instance._bCheckSceneResource)
        {
            foreach (var item in CheckSceneResource(8, "Scene资源检查.txt"))
            {
                yield return(item);
            }
        }

        yield return(new WaitForSeconds(0.2f));

        //检查模型资源
        if (GameDataCheck.Instance._bCheckCharacterResource)
        {
            foreach (var item in CheckCharacterResource(9, "Character资源检查.txt", "Character过大贴图.csv", "Character非标准贴图.csv", "Character过大贴图(只贴图).csv"))
            {
                yield return(item);
            }
        }

        yield return(new WaitForSeconds(0.2f));

        //检查sfx资源
        if (GameDataCheck.Instance._bCheckSfxResource)
        {
            foreach (var item in CheckSfxResource(10, "Sfx资源检查.txt"))
            {
                yield return(item);
            }
        }

        yield return(new WaitForSeconds(0.2f));

        //检查静态Mesh统计
        if (GameDataCheck.Instance._bCheckStaticMesh)
        {
            foreach (var item in CheckStaticMeshResource(11, "StaticMesh资源统计.txt", "StaticMesh资源统计.csv", "StaticMesh总量统计.csv"))
            {
                yield return(item);
            }
        }

        yield return(new WaitForSeconds(0.2f));

        //检查Shader统计
        if (GameDataCheck.Instance._bCheckShader)
        {
            foreach (var item in CheckShaderResource(12,
                                                     "Shader被哪些使用_Standard.csv", "Shader被哪些使用_GrabPass.csv", "Shader被哪些使用_KriptoFXParticle.csv",
                                                     "Shader被哪些使用_Distortion_L3.csv", "Shader被哪些使用_Distortion_非L3.csv", "Shader被哪些使用_DepthTexture.csv", "Shader被哪些使用_CutoutBorder.csv", "Shader被哪些使用_非Output下.csv",
                                                     "Shader使用统计_Scene.csv", "Shader使用统计_Character.csv", "Shader使用统计_Sfx.csv", "Shader使用统计_ALL.csv"))
            {
                yield return(item);
            }
        }

        yield return(new WaitForSeconds(0.2f));

        CUnityHelper.UnregisterLogCallback(ProcessExceptionReport);

        SetAllProgress(1.0f);
        SetDesc("全部检查完毕!");

#if UNITY_EDITOR && UNITY_STANDALONE_WIN
        string logDir = System.IO.Path.Combine(Application.dataPath, "../../CheckResult_GameData/");
        if (Directory.Exists(logDir))
        {
            Util.OpenDir(logDir);
        }
#endif

        SetUpdateSucceed();
        yield return(null);
    }