public void UpdateCanvasSettings(Canvas canvas, IWindowCanvasConfig config) { var canvasScaler = canvas.GetComponent <CanvasScaler>(); canvasScaler.referenceResolution = config.ReferenceResolution; canvasScaler.referencePixelsPerUnit = config.PixelsPerUnit; UpdateAlignment(config.AlignmentType, canvasScaler); UpdateScreenMatchMode(config.ScreenMatchMode, canvasScaler); /*var camera = Camera.main; * camera.orthographic = config.CameraType == CanvasCameraType.Orthogonal; * camera.fieldOfView = config.CameraFieldOfView; * if (!config.InheritParentCameraSize) * { * camera.orthographicSize = config.MainCameraSize; * }*/ if (config.RenderMode != RenderMode.ScreenSpaceOverlay) { canvas.worldCamera = _camera; } canvas.renderMode = config.RenderMode; if (config.AlignmentType != CanvasAlignmentType.Custom) { canvas.gameObject.SetActive(true); } }
public Canvas Create(int topWindowOrder, IWindowCanvasConfig config) { var canvas = Object.Instantiate(_settings.DefualtCanvas); canvas.transform.localPosition = Vector3.zero; canvas.transform.localScale = Vector3.one; canvas.sortingOrder = topWindowOrder + 1; _canvasConfigurator.UpdateCanvasSettings(canvas, config); return(canvas); }