Files
3d-fengji/Assets/Scripts/UIManager/UIManager.cs
2026-05-20 17:05:47 +08:00

66 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
}
}