public override void OnUpdate(float dealTime) { //达不到最低配的要求 if (SystemInfo.systemMemorySize < MemoryRequire || SystemInfo.graphicsMemorySize < GraphsicMemoryRequire || SystemInfo.graphicsShaderLevel < shaderAPIRequire) { //PerformanceCheckManager.Instance.flowShareData.ui_Checking.gameObject.SetActive(false); PerformanceCheckManager.Instance.ReslutData.VeryLowMachine = true; PerformanceCheckManager.Instance.ChangeFlow(CheckFlow.Finish); return; } //查看是否支持RT,不支持的话,中级渲染也不行,中级渲染需要2个rt Resolution res = ImageSetting.GetCurrentResolution(); RenderTexture rt1 = new RenderTexture(res.width, res.height, 24); if (!rt1.Create()) { PerformanceCheckManager.Instance.ReslutData.notSupportRT = true; //PerformanceCheckManager.Instance.flowShareData.ui_Checking.gameObject.SetActive(false); PerformanceCheckManager.Instance.ChangeFlow(CheckFlow.Finish); return; } RenderTexture rt2 = new RenderTexture(res.width, res.height, 24); if (!rt2.Create()) { rt1.Release(); GameObject.Destroy(rt1); rt1 = null; PerformanceCheckManager.Instance.ReslutData.notSupportRT = true; //PerformanceCheckManager.Instance.flowShareData.ui_Checking.gameObject.SetActive(false); PerformanceCheckManager.Instance.ChangeFlow(CheckFlow.Finish); return; } rt1.Release(); GameObject.Destroy(rt1); rt1 = null; rt2.Release(); GameObject.Destroy(rt2); rt2 = null; //不支持高等级渲染,硬件限制 if (SystemInfo.graphicsShaderLevel < highShaderAPIRequire || SystemInfo.supportedRenderTargetCount < highRTCout || SystemInfo.systemMemorySize < highMemoryRequire || SystemInfo.graphicsMemorySize < highGraphiscMemoryRequire) { PerformanceCheckManager.Instance.ReslutData.notSupportHighLevel = true; } PerformanceCheckManager.Instance.ReslutData.VeryLowMachine = false; PerformanceCheckManager.Instance.ChangeFlow(CheckFlow.GeometricRender); }
private void InitUICamera() { GameObject uiCameraInstance = GameObject.Find(UDefines.UICamera); if (uiCameraInstance == null) { uiCameraInstance = new GameObject(UDefines.UICamera); uiCameraInstance.layer = LayerMask.NameToLayer(Config.LayerUI); uiCameraInstance.AddComponent <Camera>(); DontDestroyOnLoad(uiCameraInstance); } m_uiCamera = uiCameraInstance.GetComponent <Camera>(); //这里确保相机用的值没被改变 m_uiCamera.transform.SetPosition(new Vector3(10000, 10000, 10000)); m_uiCamera.clearFlags = CameraClearFlags.Depth; m_uiCamera.cullingMask = 1 << LayerMask.NameToLayer(Config.LayerUI); m_uiCamera.orthographic = true; m_uiCamera.orthographicSize = 5; // ResolutionWidth / ResolutionHeight; m_uiCamera.depth = 1; //这个相机要在其他相机上面 m_uiCamera.nearClipPlane = 0; m_canvas.renderMode = RenderMode.WorldSpace;//RenderMode.ScreenSpaceCamera; m_canvas.worldCamera = m_uiCamera; if (m_canvas.renderMode == RenderMode.WorldSpace) { m_canvas.transform.localScale = new Vector3(0.009259259f, 0.009259259f, 0.009259259f); m_canvas.transform.SetPosition(new Vector3(10000, 10000, 10002)); //m_canvas.transform.SetPosition(m_uiCamera.transform.position); (m_canvas.transform as RectTransform).pivot = new Vector2(0.5f, 0.5f); SetResolution(ImageSetting.GetCurrentResolution().width, ImageSetting.GetCurrentResolution().height); //m_uiCamera.orthographicSize = 1080 / 2; //m_uiCamera.farClipPlane = 20000; } }