66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
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);
|
||
}
|
||
}
|