Слияние: наши панели HUD, стройка, казармы, камера + карта мира, чат и рейтинг от Саши
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class UINavigation : MonoBehaviour
|
||||
{
|
||||
[Header("Родитель панелей (например, HUD_Canvas или PanelsContainer)")]
|
||||
[SerializeField] private Transform panelsRoot;
|
||||
|
||||
// Публичные методы для кнопок (вешаем в OnClick)
|
||||
public void OpenHome() => ShowPanel("Panel_Home");
|
||||
public void OpenHero() => ShowPanel("Panel_Hero");
|
||||
public void OpenArena() => ShowPanel("Panel_Arena");
|
||||
public void OpenBattle() => ShowPanel("Panel_Battle");
|
||||
public void OpenTroops() => ShowPanel("Panel_Troops");
|
||||
public void OpenShop() => ShowPanel("Panel_Shop");
|
||||
public void OpenMail() => ShowPanel("Panel_Mail");
|
||||
public void OpenMissions() => ShowPanel("Panel_Missions");
|
||||
public void OpenProfile() => ShowPanel("Panel_Profile");
|
||||
public void OpenReward() => ShowPanel("Panel_Reward");
|
||||
public void OpenEvents() => ShowPanel("Panel_Events");
|
||||
|
||||
private void ShowPanel(string panelName)
|
||||
{
|
||||
GameObject target = null; // Объявляем переменную ОДИН раз в начале метода
|
||||
|
||||
// Вариант 1: Если задан родитель, ищем только внутри него
|
||||
if (panelsRoot != null)
|
||||
{
|
||||
Transform found = panelsRoot.Find(panelName);
|
||||
if (found != null)
|
||||
target = found.gameObject;
|
||||
}
|
||||
// Вариант 2: Если родителя нет, ищем по всей сцене
|
||||
else
|
||||
{
|
||||
target = GameObject.Find(panelName);
|
||||
}
|
||||
|
||||
// Если панель найдена — показываем её
|
||||
if (target != null)
|
||||
{
|
||||
HideAllPanels();
|
||||
target.SetActive(true);
|
||||
Debug.Log("Открыта панель: " + panelName);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("Не удалось найти панель с именем: " + panelName + ". Проверь название!");
|
||||
}
|
||||
}
|
||||
|
||||
private void HideAllPanels()
|
||||
{
|
||||
if (panelsRoot == null) return;
|
||||
|
||||
foreach (Transform child in panelsRoot)
|
||||
{
|
||||
child.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user