private void OpenPanel(GameObject submenuPanel)
    {
        if (startPanel.activeInHierarchy || settingsPanel.activeInHierarchy || aboutPanel.activeInHierarchy)
        {
            Debug.LogError($"Cannot open {submenuPanel.name}, since only one sub-mainmenu panel can be active at a time.");
        }

        submenuPanel.SetActive(true);
        Button startButton = ObjectUtils.GetComponentInChildWithTag <Button>(submenuPanel, startButtonTag, true);

        if (startButton)
        {
            UiUtils.AddAutoUnsubscribeOnClickListenerToButton(startButton, () =>
            {
                actionOnStartPress();
            });
        }
        Button closeButton = ObjectUtils.GetComponentInChildWithTag <Button>(submenuPanel, cancelButtonTag, true);

        if (closeButton)
        {
            UiUtils.AddAutoUnsubscribeOnClickListenerToButton(closeButton, () =>
            {
                DeactivePanels();
                actionOnPanelClose();
            });
        }
        actionOnPanelOpen();
    }