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(); }