using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;

//public enum UILayer { HUD,Main,Popup}
public class UIManager : BaseMgr<UIManager>
{
    //这里面要维护很多数据，
    //基本上所有的覆盖全屏 UI 的对象都要覆盖，
    //涉及到 UI 外面的也会有一些全部使用 public，
    //目前他控制的应该只是某个UI的显示与否，就是Setactive，其他的逻辑不要写
    //find找不到禁用对象解决的办法就是不要把任何对象设置禁用，哪怕费点事禁用全部组件就行
    //这样除了在update里面不要写find之外，哪里都能找到这个gameobject了
    //调试归调试，但是还是要给前端调用接口，还是要分散到当事对象上面
    //比如启用工人视角这个函数就应该放在工人这个gameobject上面
    public GameObject mainCamera;
    public GameObject worker;
    public GameObject PopUpCanvas;
    public Transform ICONS;
    
    protected override void Awake()
    {
        base.Awake();
    }
    public void ConvertToWorkerView()
    {
        
        mainCamera.SetActive(false);
        worker.SetActive(true);

        for (int i = 0; i < ICONS.childCount; i++)
        {
            ICONS.GetChild(i).transform.localScale = Vector3.one * 0.5f;//工人视角下重置大小
        }
    }
    public void ConvertToFreeView()
    {
        mainCamera.SetActive(true);
        worker.SetActive(false);
        
    }
   public void DisplayData(string targetName)
    {
        if (PopUpCanvas.transform.Find(targetName) != null)
        {
            PopUpCanvas.transform.Find(targetName).gameObject.SetActive(true);
        }
    }
    public void HideData()
    {
        for(int i = 0; i < PopUpCanvas.transform.childCount; i++)
        {
            PopUpCanvas.transform.GetChild(i).gameObject.SetActive(false);
        }
    }
    public void CloseSluicesHeight()
    {
        PopUpCanvas.transform.Find("Sluices").gameObject.SetActive(false);
    }
    public void OpenSluicesHeight()
    {
        PopUpCanvas.transform.Find("Sluices").gameObject.SetActive(true);
    }
}
