コード例 #1
0
        protected override SharpUIBase BuildMainPanel()
        {
            SharpUIBase toReturn = base.BuildMainPanel();

            _background.alignment = EAlignment.TopRight;
            _background.margin    = new RectOffset(0, 20, 20, 0);

            _heroHealthBar.FillDirection = SharpUIProgressBar.EFillDirection.RightToLeft;
            _heroHealthBar.alignment     = EAlignment.TopLeft;

            _headBackground.alignment = EAlignment.MiddleRight;

            _headSprite.LocalScale = new Vector3(-1f, 1f, 1f);

            _energyMeter.alignment      = EAlignment.TopRight;
            _energyMeter.childAlignment = EAlignment.TopRight;
            _energyMeter.order          = EHorizontalOrder.RightToLeft;
            _energyMeter.margin         = new RectOffset(0, (int)Size.y + 10, 70, 0);

            _sourceLabel.alignment = EAlignment.BottomRight;

            return(toReturn);
        }
コード例 #2
0
        // --------------------------------------------------------------------------------------------
        protected override SharpUIBase BuildMainPanel()
        {
            _background       = new SharpUIImage("UIStartMenuView", null);
            _background.Color = FadeInStartColor;
            _background.SetFillSize();

            _canvasGroup = new SharpUICanvasGroup("CanvasGroup");
            _canvasGroup.SetFillSize();
            _canvasGroup.Alpha = 0f;
            _background.AddChild(_canvasGroup);

            SharpUITextMeshPro title = new SharpUITextMeshPro("Title", "GridStrategy\n<size=15%>by Tofunaut</size>");

            title.Font          = AppManager.AssetManager.Get <TMPro.TMP_FontAsset>(AssetPaths.Fonts.GravityUltraLight);
            title.Color         = Color.white;
            title.TextAlignment = TMPro.TextAlignmentOptions.Center;
            title.SetFillSize(EAxis.X, 0.5f);
            title.SetFixedSize(EAxis.Y, 500);
            title.AutoSizeFont();
            title.alignment = EAlignment.TopCenter;
            _canvasGroup.AddChild(title);

            SharpUITextMeshPro versionLabel = new SharpUITextMeshPro("VersionLabel", AppManager.AppVersion);

            versionLabel.Font          = AppManager.AssetManager.Get <TMPro.TMP_FontAsset>(AssetPaths.Fonts.GravityRegular);
            versionLabel.Color         = new Color(1f, 1f, 1f, 0.5f);
            versionLabel.TextAlignment = TMPro.TextAlignmentOptions.Center;
            versionLabel.SetFixedSize(50, 25);
            versionLabel.AutoSizeFont();
            versionLabel.alignment = EAlignment.BottomRight;
            versionLabel.margin    = new RectOffset(0, 20, 0, 20);
            _canvasGroup.AddChild(versionLabel);

            _buttonLayout = BuildButtonLayout();
            _canvasGroup.AddChild(_buttonLayout);

            if (!AppManager.IsClientValid)
            {
                SharpUITextMeshPro clientValidationErrorMessage = new SharpUITextMeshPro("ClientValidationErrorMessage", string.Empty);
                clientValidationErrorMessage.Font  = AppManager.AssetManager.Get <TMPro.TMP_FontAsset>(AssetPaths.Fonts.GravityRegular);
                clientValidationErrorMessage.Color = Color.red;
                clientValidationErrorMessage.SetFixedSize(200, 25);
                clientValidationErrorMessage.SetFontSize(28);
                clientValidationErrorMessage.alignment     = EAlignment.TopLeft;
                clientValidationErrorMessage.margin        = new RectOffset(20, 0, 20, 0);
                clientValidationErrorMessage.TextAlignment = TMPro.TextAlignmentOptions.TopLeft;
                _canvasGroup.AddChild(clientValidationErrorMessage);

                switch (AppManager.ClientState)
                {
                case AppManager.EClientState.ForceOffline:
                    clientValidationErrorMessage.Text = "Force offline";
                    break;

                case AppManager.EClientState.ValidationError:
                    clientValidationErrorMessage.Text = "Client failed to validate correctly";
                    break;

                case AppManager.EClientState.Offline:
                    clientValidationErrorMessage.Text = "Client is offline";
                    break;

                case AppManager.EClientState.NeedsUpdate:
                    clientValidationErrorMessage.Text = "Client must update";
                    break;
                }
            }

            return(_background);
        }