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", // 未知类型 }; } }
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); }