TH1/My project/Assets/Scripts/UI/UIManager.cs
2025-06-13 03:56:58 +08:00

108 lines
3.1 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 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);
}
}