protected virtual void init() { // 必须先初始化配置文件 int count = mFrameComponentInit.Count; for (int i = 0; i < count; ++i) { try { DateTime start = DateTime.Now; mFrameComponentInit[i].init(); UnityUtility.log(mFrameComponentInit[i].getName() + "初始化消耗时间:" + (DateTime.Now - start).TotalMilliseconds); } catch (Exception e) { UnityUtility.logError("init failed! :" + mFrameComponentInit[i].getName() + ", info:" + e.Message + ", stack:" + e.StackTrace); } } System.Net.ServicePointManager.DefaultConnectionLimit = 200; // 默认不启用调试脚本 mEnableScriptDebug = false; mEnableKeyboard = (int)FrameBase.mFrameConfig.getFloat(GAME_FLOAT.ENABLE_KEYBOARD) > 0; ApplicationConfig appConfig = FrameBase.mApplicationConfig; QualitySettings.vSyncCount = (int)appConfig.getFloat(GAME_FLOAT.VSYNC); int width = (int)appConfig.getFloat(GAME_FLOAT.SCREEN_WIDTH); int height = (int)appConfig.getFloat(GAME_FLOAT.SCREEN_HEIGHT); int fullScreen = (int)appConfig.getFloat(GAME_FLOAT.FULL_SCREEN); #if !UNITY_EDITOR && (UNITY_ANDROID || UNITY_IOS) // 移动平台下固定为全屏 fullScreen = 1; #endif Vector2 screenSize = UnityUtility.getScreenSize(); if (fullScreen == 1) { width = (int)screenSize.x; height = (int)screenSize.y; } Screen.SetResolution(width, height, fullScreen == 1 || fullScreen == 3); #if !UNITY_EDITOR && UNITY_STANDALONE_WIN // 设置为无边框窗口,只在Windows平台使用 if (fullScreen == 2) { // 无边框的设置有时候会失效,并且同样的设置,如果上一次设置失效后,即便恢复设置也同样会失效,也就是说本次的是否生效与上一次的结果有关 // 当设置失效后,可以使用添加启动参数-popupwindow来实现无边框 long curStyle = User32.GetWindowLong(User32.GetForegroundWindow(), FrameDefine.GWL_STYLE); curStyle &= ~FrameDefine.WS_BORDER; curStyle &= ~FrameDefine.WS_DLGFRAME; User32.SetWindowLong(User32.GetForegroundWindow(), FrameDefine.GWL_STYLE, curStyle); } #endif // UGUI GameObject uguiRootObj = UnityUtility.getGameObject(FrameDefine.UGUI_ROOT); RectTransform uguiRectTransform = uguiRootObj.GetComponent<RectTransform>(); uguiRectTransform.offsetMin = -screenSize * 0.5f; uguiRectTransform.offsetMax = screenSize * 0.5f; uguiRectTransform.anchorMax = Vector2.one * 0.5f; uguiRectTransform.anchorMin = Vector2.one * 0.5f; GameCamera camera = FrameBase.mCameraManager.getUICamera(); if (camera != null) { FT.MOVE(camera, new Vector3(0.0f, 0.0f, -height * 0.5f / MathUtility.tan(camera.getFOVY(true) * 0.5f))); } GameCamera blurCamera = FrameBase.mCameraManager.getUIBlurCamera(); if (blurCamera != null) { FT.MOVE(blurCamera, new Vector3(0.0f, 0.0f, -height * 0.5f / MathUtility.tan(blurCamera.getFOVY(true) * 0.5f))); } // 设置默认的日志等级 #if UNITY_EDITOR UnityUtility.setLogLevel(LOG_LEVEL.NORMAL); #else UnityUtility.setLogLevel((LOG_LEVEL)(int)FrameBase.mFrameConfig.getFloat(GAME_FLOAT.LOG_LEVEL)); #endif }