/// <inheritdoc /> public void Initialize(UIManagerConfig uiManagerConfig) { var eventsSystem = new GameObject("EvensSystem", typeof(EventSystem), typeof(StandaloneInputModule)); DontDestroyOnLoad(eventsSystem.gameObject); gameObject.layer = LayerMask.NameToLayer("UI"); if (_widgetLibrary == null) { _widgetLibrary = uiManagerConfig.widgetsLibrary; } if (_canvas == null) { _canvas = GetComponent <Canvas>(); } _canvas.renderMode = uiManagerConfig.renderMode; _canvas.planeDistance = uiManagerConfig.planeDistance; if (_canvasScaler == null) { _canvasScaler = GetComponent <CanvasScaler>(); } _canvasScaler = GetComponent <CanvasScaler>(); _canvasScaler.uiScaleMode = uiManagerConfig.canvasScaleMode; _canvasScaler.screenMatchMode = uiManagerConfig.canvasScreenMatchMode; _canvasScaler.referenceResolution = new Vector2(uiManagerConfig.ReferenceResolution.x, uiManagerConfig.ReferenceResolution.y); _canvasScaler.matchWidthOrHeight = uiManagerConfig.matchWidthOrHeight; CreateUILayers(uiManagerConfig); if (UiCamera != null || !uiManagerConfig.createUICamera) { return; } var uiCameraGo = new GameObject("UICamera"); uiCameraGo.transform.position = new Vector3(0, 0, -10); DontDestroyOnLoad(uiCameraGo); UiCamera = uiCameraGo.AddComponent <Camera>(); UiCamera.cullingMask = 1 << LayerMask.NameToLayer("UI"); UiCamera.orthographic = uiManagerConfig.orthographic; UiCamera.orthographicSize = uiManagerConfig.orthographicSize; UiCamera.clearFlags = uiManagerConfig.cameraClearFlags; UiCamera.backgroundColor = Color.grey; UiCamera.allowHDR = false; UiCamera.allowMSAA = false; UiCamera.GetUniversalAdditionalCameraData().renderType = uiManagerConfig.cameraRenderType; if (uiManagerConfig.createAudioListener) { uiCameraGo.AddComponent <AudioListener>(); } }
private void CreateUILayers(UIManagerConfig uiManagerConfig) { _uiLayers = new List <UILayer>(); for (var i = 0; i < uiManagerConfig.uiLayersList.Count; i++) { var layerName = $"UI-Layer-{i}-{uiManagerConfig.uiLayersList[i]}"; var uiLayer = new GameObject(layerName).AddComponent <UILayer>(); uiLayer.transform.SetParent(transform, false); uiLayer.Init(this, i, renderMode: uiManagerConfig.renderMode); _uiLayers.Add(uiLayer); } }
public void Construct(UIManagerConfig uiManagerConfig, WidgetFactory widgetFactory) { _uiManagerConfig = uiManagerConfig; _widgetFactory = widgetFactory; }