108 lines
3.1 KiB
C#
108 lines
3.1 KiB
C#
using Logic;
|
||
using UnityEngine;
|
||
using UnityEngine.SceneManagement;
|
||
using UnityEngine.UI;
|
||
using TMPro;
|
||
using Unity.VisualScripting;
|
||
using RuntimeData;
|
||
using UnityEngine.AI;
|
||
|
||
public class UIManager
|
||
{
|
||
private Main _main;
|
||
private MapData _mapData;
|
||
public GameObject ROUIManager;
|
||
|
||
public TopBarUI TopBarUI;
|
||
public BottomBarUI BottomBarUI;
|
||
public BottomInfoUI BottomInfoUI;
|
||
public CenterMessageUI CenterMessageUI;
|
||
public TechTreeUI TechTreeUI;
|
||
public CityUpgradeActionUI CityUpgradeActionUI;
|
||
public GameUI GameUI;
|
||
|
||
|
||
// ✅ 新增的 UI 类成员
|
||
public SettingUI SettingUI;
|
||
public WinUI WinUI;
|
||
public LoseUI LoseUI;
|
||
public TimeEndUI TimeEndUI;
|
||
public MessageUI MessageUI;
|
||
public RankingUI RankingUI;
|
||
|
||
GameObject mainUI;
|
||
GameObject chooseTribeUI;
|
||
public GameObject AIPlayingHint;
|
||
public bool AIPlaying = false;
|
||
|
||
public UIManager(Main main)//, MapData mapData)
|
||
{
|
||
_main = main;
|
||
//_mapData = mapData;
|
||
Scene currentScene = SceneManager.GetActiveScene();
|
||
GameObject[] rootObjects = currentScene.GetRootGameObjects();
|
||
foreach (GameObject rootObject in rootObjects)
|
||
if (rootObject.name == "UICanvas"){
|
||
ROUIManager = rootObject;
|
||
break;
|
||
}
|
||
AIPlayingHint = ROUIManager.transform.Find("AIPlayingHint").gameObject;
|
||
}
|
||
|
||
public void Init()
|
||
{
|
||
SettingUI = new SettingUI(_main, _mapData);
|
||
|
||
GameUI = new GameUI(_main,_mapData);
|
||
//这里要异步new和init,不然new里会用到还没被new完的自己
|
||
GameUI.Init();
|
||
}
|
||
public void GameInit(MapData mapData)
|
||
{
|
||
_mapData = mapData;
|
||
WinUI = new WinUI(_main, _mapData);
|
||
LoseUI = new LoseUI(_main, _mapData);
|
||
TimeEndUI = new TimeEndUI(_main, _mapData);
|
||
MessageUI = new MessageUI(_main, _mapData);
|
||
RankingUI = new RankingUI(_main, _mapData);
|
||
TopBarUI = new TopBarUI(_main,_mapData);
|
||
BottomInfoUI = new BottomInfoUI(_main,_mapData);
|
||
BottomBarUI = new BottomBarUI(_main,_mapData);
|
||
CenterMessageUI = new CenterMessageUI(_main,_mapData);
|
||
TechTreeUI = new TechTreeUI(_main,_mapData);
|
||
CityUpgradeActionUI = new CityUpgradeActionUI(_main,_mapData);
|
||
}
|
||
|
||
|
||
public void Update(MapData mapData)
|
||
{
|
||
if (mapData != null)
|
||
{
|
||
|
||
CenterMessageUI.Update();
|
||
CityUpgradeActionUI.Update();
|
||
BottomBarUI.Update();
|
||
BottomInfoUI.Update();
|
||
if(mapData != null)
|
||
TechTreeUI.Update(mapData);
|
||
TopBarUI.Update();
|
||
WinUI.Update();
|
||
LoseUI.Update();
|
||
TimeEndUI.Update();
|
||
MessageUI.Update();
|
||
RankingUI.Update();
|
||
}
|
||
|
||
// ✅ 每帧更新新增的 UI
|
||
SettingUI.Update();
|
||
GameUI.Update();
|
||
}
|
||
|
||
public void EndTurn()
|
||
{
|
||
TopBarUI.RenderMark = true;
|
||
AIPlayingHint.SetActive(true);
|
||
}
|
||
|
||
}
|