示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }