public void CreateUI()
 {
     ButtonDimensions  = SettingsManager.Instance.GameplayButtonSize;
     ButtonOrientation = SettingsManager.Instance.ControllerLayout;
     CreateBackground();
     CreateTopBar();
     CreateLeftSection();
     SetButtonConfig();
     CreateRightSection();
 }
        void CreateLeftSection()
        {
            Sprite MiniGameScene = new Sprite();

            MiniGameScene.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            MiniGameScene.ImageRect = AssetsCoordinates.Generic.Boxes.MiniGameScreen;
            MiniGameScene.SetSize(GameInstance.ScreenInfo.SetX(940), GameInstance.ScreenInfo.SetY(530));
            MiniGameScene.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            MiniGameScene.SetPosition(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(230));
            GameInstance.UI.Root.AddChild(MiniGameScene);

            Sprite PausaButton = new Sprite();

            MiniGameScene.AddChild(PausaButton);
            PausaButton.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            PausaButton.ImageRect = AssetsCoordinates.Generic.Boxes.PausaButton;
            PausaButton.SetSize(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(50));
            PausaButton.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            PausaButton.SetPosition(GameInstance.ScreenInfo.SetX(40), GameInstance.ScreenInfo.SetY(40));

            Buttons = new Sprite();
            MiniGameScene.AddChild(Buttons);
            Buttons.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Buttons.ImageRect = AssetsCoordinates.Generic.Boxes.ButtonsLeft;
            Buttons.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);

            AccBrakeBtn = new Sprite();
            MiniGameScene.AddChild(AccBrakeBtn);
            AccBrakeBtn.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            AccBrakeBtn.ImageRect = AssetsCoordinates.Generic.Boxes.AccBrakeRight;
            AccBrakeBtn.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);

            Sprite ButtonsA = new Sprite();

            ButtonsA.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            ButtonsA.ImageRect = AssetsCoordinates.Generic.Boxes.SelectionBoxGreenPart;
            ButtonsA.SetSize(GameInstance.ScreenInfo.SetX(345), GameInstance.ScreenInfo.SetY(81));
            ButtonsA.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            ButtonsA.SetPosition(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(800));
            GameInstance.UI.Root.AddChild(ButtonsA);

            Text b1 = new Text();

            ButtonsA.AddChild(b1);
            b1.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            b1.SetPosition(0, 0);
            b1.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));
            b1.Value = "BUTTONS";


            Button ButtonsB = new Button();

            ButtonsB.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            ButtonsB.ImageRect = AssetsCoordinates.Generic.Boxes.SelectionBoxWhitePart;
            ButtonsB.SetSize(GameInstance.ScreenInfo.SetX(595), GameInstance.ScreenInfo.SetY(81));
            ButtonsB.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            ButtonsB.SetPosition(GameInstance.ScreenInfo.SetX(395), GameInstance.ScreenInfo.SetY(800));
            GameInstance.UI.Root.AddChild(ButtonsB);

            b2 = new Text();
            ButtonsB.AddChild(b2);
            b2.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            b2.SetPosition(0, 0);
            b2.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));

            ButtonsB.Pressed += args => {
                switch (ButtonDimensions)
                {
                case GameplayButtonSize.SMALL:
                    b2.Value         = "MEDIUM";
                    ButtonDimensions = GameplayButtonSize.MEDIUM;
                    SettingsManager.Instance.GameplayButtonSize = GameplayButtonSize.MEDIUM;
                    SetButtonConfig();
                    break;

                case GameplayButtonSize.MEDIUM:
                    b2.Value         = "LARGE";
                    ButtonDimensions = GameplayButtonSize.LARGE;
                    SettingsManager.Instance.GameplayButtonSize = GameplayButtonSize.LARGE;
                    SetButtonConfig();
                    break;

                case GameplayButtonSize.LARGE:
                    b2.Value         = "SMALL";
                    ButtonDimensions = GameplayButtonSize.SMALL;
                    SettingsManager.Instance.GameplayButtonSize = GameplayButtonSize.SMALL;
                    SetButtonConfig();
                    break;
                }
            };


            Sprite AccBrake = new Sprite();

            AccBrake.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            AccBrake.ImageRect = AssetsCoordinates.Generic.Boxes.SelectionBoxGreenPart;
            AccBrake.SetSize(GameInstance.ScreenInfo.SetX(345), GameInstance.ScreenInfo.SetY(81));
            AccBrake.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            AccBrake.SetPosition(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(900));
            GameInstance.UI.Root.AddChild(AccBrake);

            Text a1 = new Text();

            AccBrake.AddChild(a1);
            a1.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            a1.SetPosition(0, 0);
            a1.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));
            a1.Value = "ACC./BRAKE";

            Button AccBrakeB = new Button();

            AccBrakeB.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            AccBrakeB.ImageRect = AssetsCoordinates.Generic.Boxes.SelectionBoxWhitePart;
            AccBrakeB.SetSize(GameInstance.ScreenInfo.SetX(595), GameInstance.ScreenInfo.SetY(81));
            AccBrakeB.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            AccBrakeB.SetPosition(GameInstance.ScreenInfo.SetX(395), GameInstance.ScreenInfo.SetY(900));
            GameInstance.UI.Root.AddChild(AccBrakeB);

            a2 = new Text();
            AccBrakeB.AddChild(a2);
            a2.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            a2.SetPosition(0, 0);
            a2.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));

            AccBrakeB.Pressed += args => {
                if (ButtonOrientation == ControllerPosition.LEFT_CONTROLLER)
                {
                    ButtonOrientation = ControllerPosition.RIGHT_CONTROLLER;
                    SettingsManager.Instance.ControllerLayout = ControllerPosition.RIGHT_CONTROLLER;
                    SetButtonConfig();
                }
                else
                {
                    a2.Value          = "RIGHT";
                    ButtonOrientation = ControllerPosition.LEFT_CONTROLLER;
                    SettingsManager.Instance.ControllerLayout = ControllerPosition.LEFT_CONTROLLER;
                    SetButtonConfig();
                }
            };
        }