UIManager单例化,地图设置修复

This commit is contained in:
daixiawu 2025-07-10 17:54:39 +08:00
parent 5f76b892ec
commit 02d39ce285
37 changed files with 8899 additions and 12731 deletions

View File

@ -1,86 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CircleMaterial
m_Shader: {fileID: 4800000, guid: af887d22e1c4bb14ab86b12c41d184f4, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Thickness: 0.05
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _InnerColor: {r: 0, g: 0, b: 0, a: 0.78431374}
- _OutlineColor: {r: 1, g: 1, b: 1, a: 0.78431374}
m_BuildTextureStacks: []

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: b2c04e4bcf73d274bad7eeb667aeb283
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,86 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CircleMaterial_Blue
m_Shader: {fileID: 4800000, guid: af887d22e1c4bb14ab86b12c41d184f4, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Thickness: 0.05
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _InnerColor: {r: 0.12941173, g: 0.57254905, b: 0.87058824, a: 0.78431374}
- _OutlineColor: {r: 1, g: 1, b: 1, a: 0.78431374}
m_BuildTextureStacks: []

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 8f1b282b8d79cc4499b8bc8aea09e0a7
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -63,7 +63,7 @@ namespace Logic
//注意 bottominfo中skillinfo和actioninfo 都使用了这个模块
private void BottomInfoUIHandleHover()
{
if (!_main.UIManager.BottomInfoUI.ROBottomInfoUI.activeSelf)
if (!UIManager.Instance.BottomInfoUI.ROBottomInfoUI.activeSelf)
return;
PointerEventData pointerData = new PointerEventData(EventSystem.current)
@ -99,13 +99,13 @@ namespace Logic
}
// 检测数字键1-5的按下执行对应的操作
if (_main.UIManager.BottomInfoUI.ROBottomInfoUI.activeSelf)
if (UIManager.Instance.BottomInfoUI.ROBottomInfoUI.activeSelf)
{
for (int i = 1; i <= 9; i++)
{
if (Input.GetKeyDown(KeyCode.Alpha1 + i - 1))
{
_main.UIManager.BottomInfoUI.ExecuteActionButtonByIndex(i - 1);
UIManager.Instance.BottomInfoUI.ExecuteActionButtonByIndex(i - 1);
break;
}
}
@ -153,7 +153,7 @@ namespace Logic
if (Input.GetKeyDown(KeyCode.S))
{
SimulateButtonClick(_main.UIManager.BottomBarUI.NextTurnButton);
SimulateButtonClick(UIManager.Instance.BottomBarUI.NextTurnButton);
}
if (Input.GetKeyDown(KeyCode.BackQuote))
@ -168,20 +168,20 @@ namespace Logic
_main.MapData.PlayerMap.SelfPlayerData.PlayerWealth += 1000;
foreach (TechType techType in System.Enum.GetValues(typeof(TechType)))
Main.PlayerLogic.ResearchTech(_main.MapData, _main.MapData.PlayerMap.SelfPlayerData,techType,0);
_main.UIManager.TechTreeUI.TechTreeUIDataRenderMark = true;
UIManager.Instance.TechTreeUI.TechTreeUIDataRenderMark = true;
}
else
{
if (_main.UIManager.TechTreeUI.ROTechTreeUI.activeSelf)
if (UIManager.Instance.TechTreeUI.ROTechTreeUI.activeSelf)
{
_main.UIManager.TechTreeUI.SetTechTreeShowHide(false);
_main.UIManager.BottomBarUI.SetBottomBarShowHide(true);
UIManager.Instance.TechTreeUI.SetTechTreeShowHide(false);
UIManager.Instance.BottomBarUI.SetBottomBarShowHide(true);
}
else
{
_main.UIManager.TechTreeUI.SetTechTreeShowHide(true);
_main.UIManager.BottomBarUI.SetBottomBarShowHide(false);
_main.UIManager.BottomInfoUI.SetBottomInfoHide();
UIManager.Instance.TechTreeUI.SetTechTreeShowHide(true);
UIManager.Instance.BottomBarUI.SetBottomBarShowHide(false);
UIManager.Instance.BottomInfoUI.SetBottomInfoHide();
}
}
}
@ -201,9 +201,9 @@ namespace Logic
if (Input.GetKeyDown(KeyCode.Escape))
{
if (_main.UIManager.CenterMessageUI.ROCenterMessageUI.activeSelf)
if (UIManager.Instance.CenterMessageUI.ROCenterMessageUI.activeSelf)
{
_main.UIManager.CenterMessageUI.Hide();
UIManager.Instance.CenterMessageUI.Hide();
}
}
@ -213,10 +213,10 @@ namespace Logic
private void ShowHint(GameObject target)
{
if (!_main.UIManager.BottomInfoUI._hintWindow.activeSelf)
_main.UIManager.BottomInfoUI._hintWindow.SetActive(true);
if (!UIManager.Instance.BottomInfoUI._hintWindow.activeSelf)
UIManager.Instance.BottomInfoUI._hintWindow.SetActive(true);
RectTransform hintRt = _main.UIManager.BottomInfoUI._hintWindow.GetComponent<RectTransform>();
RectTransform hintRt = UIManager.Instance.BottomInfoUI._hintWindow.GetComponent<RectTransform>();
Vector3[] corners = new Vector3[4];
target.GetComponent<RectTransform>().GetWorldCorners(corners);
Vector3 topRight = corners[2]; // 取右上角
@ -240,12 +240,12 @@ namespace Logic
.Replace("\\n", "\n");
else
{
_main.UIManager.BottomInfoUI._hintWindow.SetActive(false);
UIManager.Instance.BottomInfoUI._hintWindow.SetActive(false);
return;
}
// 文本内容这里可以更细分比如根据按钮绑定的ActionId来取不同的文字
_main.UIManager.BottomInfoUI._hintWindow.transform.Find("Text").GetComponent<TextMeshProUGUI>().text
UIManager.Instance.BottomInfoUI._hintWindow.transform.Find("Text").GetComponent<TextMeshProUGUI>().text
= actionNameFinal + " : " + actionDescFinal;
}
//处理skill的情况
@ -256,26 +256,26 @@ namespace Logic
return;
string skillDescFinal = MultilingualManager.Instance.GetMultilingualText(uint.Parse(skillInfo.SkillDesc))
.Replace("\\n", "\n");
_main.UIManager.BottomInfoUI._hintWindow.transform.Find("Text").GetComponent<TextMeshProUGUI>().text
UIManager.Instance.BottomInfoUI._hintWindow.transform.Find("Text").GetComponent<TextMeshProUGUI>().text
= skillDescFinal;
if(skillDescFinal == "")
{
_main.UIManager.BottomInfoUI._hintWindow.SetActive(false);
UIManager.Instance.BottomInfoUI._hintWindow.SetActive(false);
return;
}
}
_main.UIManager.BottomInfoUI._hintWindow.GetComponent<CanvasGroup>().alpha = 1;
UIManager.Instance.BottomInfoUI._hintWindow.GetComponent<CanvasGroup>().alpha = 1;
}
private void HideHint()
{
if (_main.UIManager.BottomInfoUI._hintWindow.activeSelf)
if (UIManager.Instance.BottomInfoUI._hintWindow.activeSelf)
{
_main.UIManager.BottomInfoUI._hintWindow.GetComponent<CanvasGroup>().alpha = 0;
_main.UIManager.BottomInfoUI._hintWindow.SetActive(false);
UIManager.Instance.BottomInfoUI._hintWindow.GetComponent<CanvasGroup>().alpha = 0;
UIManager.Instance.BottomInfoUI._hintWindow.SetActive(false);
}
}

View File

@ -113,8 +113,8 @@ namespace Logic
_gameLogic.Main.MapData.UnitMap.OnTurnStart(_gameLogic.Main.MapData, _curPlayer);
_gameLogic.Main.MapData.GridMap.OnTurnStart(_gameLogic.Main.MapData);
_gameLogic.Main.UIManager.EndTurn();
_gameLogic.Main.UIManager.AIPlayingHint.SetActive(false);
UIManager.Instance.EndTurn();
UIManager.Instance.AIPlayingHint.SetActive(false);
_gameLogic.Main.InputLogic.UnlockInput();
//UIManager.AIPlaying = false;
@ -190,7 +190,7 @@ namespace Logic
public override void Enter()
{
_gameLogic.Main.UIManager.AIPlayingHint.SetActive(true);
UIManager.Instance.AIPlayingHint.SetActive(true);
Turn++;
_aiPlayers.Clear();
foreach (var playerData in _gameLogic.Main.MapData.PlayerMap.PlayerDataList)

View File

@ -58,23 +58,18 @@ namespace Logic
public static CityLogic CityLogic;
public static UnitLogic UnitLogic;
public static PlayerLogic PlayerLogic;
public UIManager UIManager;
//public UIManager UIManager;
//Library模块的引用
Table table;
void Start()
void StartInstanceGroup()
{
CrashSightManager.Instance.Initialize();
MapData = null;
new Table(); //Table单例
new Timer(); //Timer单例
new DebugCenter(); //Debug单例
//初始化SpriteCache加载所有sprite
new ResourceCache(); //ResourceCache单例 缓存所有resource
ResourceCache.Instance.Init();
DebugCenter.Instance.DebugNoAI = NoAI;
DebugCenter.Instance.DebugSelfPlayerAllSight = FullSight;
DebugCenter.Instance.DebugAIAllTech = AIAllTech;
@ -83,6 +78,27 @@ namespace Logic
DebugCenter.Instance.AnimationSpeed = AnimationSpeed;
DebugCenter.Instance.DebugMode = DebugMode;
DebugCenter.Instance.DebugHideCenterMessage = DebugHideCenterMessage;
//初始化SpriteCache加载所有sprite
new ResourceCache(); //ResourceCache单例 缓存所有resource
ResourceCache.Instance.Init();
new UIManager(); //UIManager单例
UIManager.Instance.Init(this);
}
void Start()
{
CrashSightManager.Instance.Initialize();
MapData = null;
//初始化各种单例
StartInstanceGroup();
if(LandThreshold > 0)
DebugCenter.Instance.DebugLandThreshold = LandThreshold;
@ -91,8 +107,8 @@ namespace Logic
PlayerLogic ??= new PlayerLogic(this);
GameLogic = new GameLogic(this);
UIManager = new UIManager(this);
UIManager.Init();
GameRecordManager.Instance.Init();
AchievementDataManager.Instance.Init();
AudioManager.Instance.Init();
@ -116,7 +132,7 @@ namespace Logic
//清空MapRenderer,然后重新初始化
MapRenderer.Dispose();
MapRenderer.Initialize(this,MapData);
UIManager.GameInit(MapData);
UIManager.Instance.GameInit(MapData);
MapRenderer.Instance.FirstRenderMap();
@ -125,7 +141,7 @@ namespace Logic
}
public void StartGame(uint h, uint w,uint playerCount, uint civId, uint forceId)
{
LogSystem.LogInfo($"Game Start!!!!");
//LogSystem.LogInfo($"Game Start!!!!");
MapConfig = new MapConfig(h,w,playerCount,civId,forceId);
//初始化所有Data
@ -142,7 +158,7 @@ namespace Logic
MapRenderer.Dispose();
MapRenderer.Initialize(this,MapData);
UIManager.GameInit(MapData);
UIManager.Instance.GameInit(MapData);
MapGeneratorLogic.GenerateMap(MapData);
MapRenderer.Instance.FirstRenderMap();
@ -153,7 +169,7 @@ namespace Logic
if(MapData.GetCapitalCityDataByPlayerId(selfp.Id, out var cap)
&& MapData.GetGridDataByCityId(cap.Id, out var grid))
camera.CameraFocusOnGrid(grid,true);
UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.StartGame,MapData.PlayerMap.SelfPlayerData);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.StartGame,MapData.PlayerMap.SelfPlayerData);
GameLogic.ChangeState(GameState.PlayerRound);
}
// Update is called once per frame
@ -165,7 +181,7 @@ namespace Logic
//先处理玩家输入
InputLogic?.Update();
MapRenderer.TryUpdate();
UIManager.Update(MapData);
UIManager.Instance.Update(MapData);
Timer.Instance.Update();
AudioManager.Instance.Update();
TimelineManager.Instance.Update();

View File

@ -60,7 +60,7 @@ namespace Logic
MapRenderer.Instance.ROGridMap[gridData.Id].SetBounceAnim();
MapRenderer.Instance.ROGridMap[gridData.Id].SetFogAnim();
CancelAllHighlight();
_main.UIManager.BottomInfoUI.SetBottomInfoHide();
UIManager.Instance.BottomInfoUI.SetBottomInfoHide();
return;
}
@ -80,14 +80,14 @@ namespace Logic
MapRenderer.Instance.CameraController.CameraFocusOnGrid(gridData);
CancelAllHighlight();
MapRenderer.Instance.ROGridMap[gridData.Id].SetSelectHighlight(true);
_main.UIManager.BottomInfoUI.SetBottomInfoShowGrid(gridData.Id);
UIManager.Instance.BottomInfoUI.SetBottomInfoShowGrid(gridData.Id);
}
//如果是攻击
else if (roUnit.IsAttackHighlight)
{
CancelAllHighlight();
Main.UnitLogic.Attack(_main.MapData, MapRenderer.Instance.SelectUnitData, unitData);
_main.UIManager.BottomInfoUI.UIBottomInfoStatus = false;
UIManager.Instance.BottomInfoUI.UIBottomInfoStatus = false;
}
//如果是选择角色
else if (!roGrid.IsSelectHighlight)
@ -98,11 +98,11 @@ namespace Logic
MapRenderer.Instance.ROUnitMap[unitData.Id].SetSelectHighlight(true);
MapRenderer.Instance.ROUnitMap[unitData.Id].SetBounceAnim();
MapRenderer.Instance.SelectUnitData = unitData;
_main.UIManager.BottomInfoUI.SetBottomInfoShowUnit(unitData.Id);
_main.UIManager.BottomInfoUI.UIBottomInfoHideFirst = _main.UIManager.BottomInfoUI.UIBottomInfoStatus;
_main.UIManager.BottomInfoUI.UIBottomInfoStatus = true;
_main.UIManager.BottomInfoUI.UIBottomInfoIsGrid = false;
_main.UIManager.BottomInfoUI.UIBottomInfoStatusObjectId = unitData.Id;
UIManager.Instance.BottomInfoUI.SetBottomInfoShowUnit(unitData.Id);
UIManager.Instance.BottomInfoUI.UIBottomInfoHideFirst = UIManager.Instance.BottomInfoUI.UIBottomInfoStatus;
UIManager.Instance.BottomInfoUI.UIBottomInfoStatus = true;
UIManager.Instance.BottomInfoUI.UIBottomInfoIsGrid = false;
UIManager.Instance.BottomInfoUI.UIBottomInfoStatusObjectId = unitData.Id;
//如果是selfplayer的unit显示可操作区域
if (Main.UnitLogic.CheckIsSelfPlayer(_main.MapData, unitData.Id))
MapRenderer.Instance.SetUnitAllMoveAttackTargetHighlight(unitData.Id);
@ -113,7 +113,7 @@ namespace Logic
else
{
CancelAllHighlight();
_main.UIManager.BottomInfoUI.UIBottomInfoStatus = false;
UIManager.Instance.BottomInfoUI.UIBottomInfoStatus = false;
}
}
@ -124,7 +124,7 @@ namespace Logic
Main.UnitLogic.MoveTo(_main.MapData, MapRenderer.Instance.SelectUnitData, gridData,MoveType.ActiveMove);
//切换相机镜头
MapRenderer.Instance.CameraController.CameraFocusOnGrid(gridData);
_main.UIManager.BottomInfoUI.UIBottomInfoStatus = false;
UIManager.Instance.BottomInfoUI.UIBottomInfoStatus = false;
if (MapRenderer.Instance.CheckUnitHasMoveAttackTarget(MapRenderer.Instance.SelectUnitData.Id))
{
Timer.Instance.TimerRegister(this, () =>
@ -154,16 +154,16 @@ namespace Logic
_main.UIManager.BottomInfoUI.UIBottomInfoHideFirst = _main.UIManager.BottomInfoUI.UIBottomInfoStatus;
_main.UIManager.BottomInfoUI.UIBottomInfoStatus = true;
_main.UIManager.BottomInfoUI.UIBottomInfoIsGrid = true;
_main.UIManager.BottomInfoUI.UIBottomInfoStatusObjectId = gridData.Id;
UIManager.Instance.BottomInfoUI.UIBottomInfoHideFirst = UIManager.Instance.BottomInfoUI.UIBottomInfoStatus;
UIManager.Instance.BottomInfoUI.UIBottomInfoStatus = true;
UIManager.Instance.BottomInfoUI.UIBottomInfoIsGrid = true;
UIManager.Instance.BottomInfoUI.UIBottomInfoStatusObjectId = gridData.Id;
}
//如果是取消地块点击
else
{
CancelAllHighlight();
_main.UIManager.BottomInfoUI.UIBottomInfoStatus = false;
UIManager.Instance.BottomInfoUI.UIBottomInfoStatus = false;
}
}

View File

@ -34,28 +34,28 @@ namespace Logic
{
player.Wonder.SetWonderState(WonderTypeEnum.PEACE, WonderState.HAVE_HINT);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartPEACE, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartPEACE, player);
}
if (wonder == WonderTypeEnum.KNOWLEDGE && player.TechTree.CheckIfHasTech(TechType.Philosophy))
{
player.Wonder.SetWonderState(WonderTypeEnum.KNOWLEDGE, WonderState.HAVE_HINT);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartKNOWLEDGE, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartKNOWLEDGE, player);
}
if (wonder == WonderTypeEnum.TRADE && player.TechTree.CheckIfHasTech(TechType.Roads))
{
player.Wonder.SetWonderState(WonderTypeEnum.TRADE, WonderState.HAVE_HINT);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartTRADE, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartTRADE, player);
}
if (wonder == WonderTypeEnum.WEALTH && player.TechTree.CheckIfHasTech(TechType.Trade))
{
player.Wonder.SetWonderState(WonderTypeEnum.WEALTH, WonderState.HAVE_HINT);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartWEALTH, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartWEALTH, player);
}
if (wonder == WonderTypeEnum.EYE
@ -66,14 +66,14 @@ namespace Logic
{
player.Wonder.SetWonderState(WonderTypeEnum.EYE, WonderState.HAVE_HINT);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartEYE, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartEYE, player);
}
if (wonder == WonderTypeEnum.POWER && player.TotalKill > 0)
{
player.Wonder.SetWonderState(WonderTypeEnum.POWER, WonderState.HAVE_HINT);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartPOWER, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartPOWER, player);
}
if (wonder == WonderTypeEnum.PARK)
@ -86,7 +86,7 @@ namespace Logic
{
player.Wonder.SetWonderState(WonderTypeEnum.PARK, WonderState.HAVE_HINT);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartPARK, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderStartPARK, player);
}
}
}
@ -96,14 +96,14 @@ namespace Logic
{
player.Wonder.SetWonderState(WonderTypeEnum.PEACE, WonderState.FINISH_NOT_BUILD);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishPEACE, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishPEACE, player);
}
if (wonder == WonderTypeEnum.KNOWLEDGE && player.TechTree.HasAllTech())
{
player.Wonder.SetWonderState(WonderTypeEnum.KNOWLEDGE, WonderState.FINISH_NOT_BUILD);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishKNOWLEDGE, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishKNOWLEDGE, player);
}
if (wonder == WonderTypeEnum.TRADE)
@ -116,7 +116,7 @@ namespace Logic
{
player.Wonder.SetWonderState(WonderTypeEnum.TRADE, WonderState.FINISH_NOT_BUILD);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishTRADE, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishTRADE, player);
}
}
@ -124,7 +124,7 @@ namespace Logic
{
player.Wonder.SetWonderState(WonderTypeEnum.WEALTH, WonderState.FINISH_NOT_BUILD);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishWEALTH, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishWEALTH, player);
}
if (wonder == WonderTypeEnum.EYE
@ -135,14 +135,14 @@ namespace Logic
{
player.Wonder.SetWonderState(WonderTypeEnum.EYE, WonderState.FINISH_NOT_BUILD);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishEYE, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishEYE, player);
}
if (wonder == WonderTypeEnum.POWER && player.TotalKill >= 10)
{
player.Wonder.SetWonderState(WonderTypeEnum.POWER, WonderState.FINISH_NOT_BUILD);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishPOWER, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishPOWER, player);
}
if (wonder == WonderTypeEnum.PARK)
@ -155,7 +155,7 @@ namespace Logic
{
player.Wonder.SetWonderState(WonderTypeEnum.PARK, WonderState.FINISH_NOT_BUILD);
if (player == mapData.PlayerMap.SelfPlayerData)
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishPARK, player);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.WonderFinishPARK, player);
}
}
}
@ -179,7 +179,7 @@ namespace Logic
if (curPlayer == mapData.PlayerMap.SelfPlayerData)
{
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.MeetNewPlayer,player1,grid);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.MeetNewPlayer,player1,grid);
}
//如果是AI直接给player加钱
else
@ -202,7 +202,7 @@ namespace Logic
//如果是玩家出发ui提示。加钱的操作要在ui提示关闭的时候由ui来出发
if (curPlayer == mapData.PlayerMap.SelfPlayerData)
{
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.MeetNewPlayer,player1,grid);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.MeetNewPlayer,player1,grid);
}
//如果是AI直接给player加钱
else
@ -301,7 +301,7 @@ namespace Logic
playerData.Alive = false;
//通知中央窗口提示谁已经死了
Debug.Log("NeedShow!!!");
_main.UIManager.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.ForcesFallen,playerData);
UIManager.Instance.CenterMessageUI.SetCenterMessageShow(UICenterMessageID.ForcesFallen,playerData);
}
if (!mapData.GetCapitalCityDataByPlayerId(playerData.Id, out var capitalCity))

View File

@ -20,7 +20,7 @@ public class AboutUI
{
_main = main;
_mapData = mapData;
ROAboutUI = _main.UIManager.ROUIManager.transform.Find("AboutPanel").gameObject;
ROAboutUI = UIManager.Instance.ROUIManager.transform.Find("AboutPanel").gameObject;
ROAboutUI.transform.Find("CloseButton").GetComponent<Button>().onClick.AddListener(
() => { NeedShow = false;});
ROAboutUI.gameObject.SetActive(false);

View File

@ -30,7 +30,7 @@ public class BottomBarUI
{
_main = main;
_mapData = mapData;
ROBottomBarUI = _main.UIManager.ROUIManager.transform.Find("BottomBarPanel").gameObject;
ROBottomBarUI = UIManager.Instance.ROUIManager.transform.Find("BottomBarPanel").gameObject;
SettingsButton = ROBottomBarUI.transform.Find("SettingsButton").GetComponent<Button>();
GameStatsButton = ROBottomBarUI.transform.Find("GameStatsButton").GetComponent<Button>();
@ -100,32 +100,32 @@ public class BottomBarUI
// 按钮点击事件
private void OnSettingsClicked()
{
_main.UIManager.SettingUI.NeedShow = !_main.UIManager.SettingUI.NeedShow;
UIManager.Instance.SettingUI.NeedShow = !UIManager.Instance.SettingUI.NeedShow;
}
private void OnRankingClicked()
{
_main.UIManager.RankingUI.RankingUINeedShow = !_main.UIManager.RankingUI.RankingUINeedShow;
UIManager.Instance.RankingUI.RankingUINeedShow = !UIManager.Instance.RankingUI.RankingUINeedShow;
}
public void OnTechTreeClicked()
{
SetBottomBarShowHide(false);
_main.UIManager.TechTreeUI.SetTechTreeShowHide(true);
UIManager.Instance.TechTreeUI.SetTechTreeShowHide(true);
_main.MapInteractionLogic.CancelAllHighlight();
_main.UIManager.BottomInfoUI.SetBottomInfoHide();
UIManager.Instance.BottomInfoUI.SetBottomInfoHide();
}
private void OnNextTurnClicked()
{
_main.UIManager.BottomInfoUI.SetBottomInfoHide();
UIManager.Instance.BottomInfoUI.SetBottomInfoHide();
_main.MapInteractionLogic.CancelAllHighlight();
_main.GameLogic.ChangeState(GameState.AIRound);
}
private void OnMessageClicked()
{
_main.UIManager.MessageUI.NeedShow = !_main.UIManager.MessageUI.NeedShow;
UIManager.Instance.MessageUI.NeedShow = !UIManager.Instance.MessageUI.NeedShow;
}
}

View File

@ -75,7 +75,7 @@ public class BottomInfoUI// : MonoBehaviour
{
_main = main;
_mapData = mapData;
ROBottomInfoUI = _main.UIManager.ROUIManager.transform.Find("BottomInfoPanel").gameObject;
ROBottomInfoUI = UIManager.Instance.ROUIManager.transform.Find("BottomInfoPanel").gameObject;
_gridBaseInfo = ROBottomInfoUI.transform.Find("InfoGroup/GridBaseInfo").gameObject;
_unitBaseInfo = ROBottomInfoUI.transform.Find("InfoGroup/UnitBaseInfo").gameObject;
_cityBaseInfo = ROBottomInfoUI.transform.Find("InfoGroup/CityBaseInfo").gameObject;
@ -83,9 +83,9 @@ public class BottomInfoUI// : MonoBehaviour
_skillInfo = ROBottomInfoUI.transform.Find("InfoGroup/UnitBaseInfo/SkillIconArea").gameObject;
_closeButton = ROBottomInfoUI.transform.Find("CloseButton").gameObject; // 收起按钮
_hintWindow = ROBottomInfoUI.transform.Find("HintWindow").gameObject;
_debugGrid = _main.UIManager.ROUIManager.transform.Find("DebugPanel/PanelGroup/Selected/DebugGrid").gameObject;
_debugUnit = _main.UIManager.ROUIManager.transform.Find("DebugPanel/PanelGroup/Selected/DebugUnit").gameObject;
_debugCity = _main.UIManager.ROUIManager.transform.Find("DebugPanel/PanelGroup/Selected/DebugCity").gameObject;
_debugGrid = UIManager.Instance.ROUIManager.transform.Find("DebugPanel/PanelGroup/Selected/DebugGrid").gameObject;
_debugUnit = UIManager.Instance.ROUIManager.transform.Find("DebugPanel/PanelGroup/Selected/DebugUnit").gameObject;
_debugCity = UIManager.Instance.ROUIManager.transform.Find("DebugPanel/PanelGroup/Selected/DebugCity").gameObject;
_unitTitle = ROBottomInfoUI.transform.Find("InfoGroup/UnitBaseInfo/Title").gameObject;
_gridTitle = ROBottomInfoUI.transform.Find("InfoGroup/GridBaseInfo/Title").gameObject;
_cityTitle = ROBottomInfoUI.transform.Find("InfoGroup/CityBaseInfo/Title").gameObject;

View File

@ -51,7 +51,7 @@ public class CenterMessageUI
{
_main = main;
_mapData = mapData;
ROCenterMessageUI = _main.UIManager.ROUIManager.transform.Find("CenterMessagePanel").gameObject;
ROCenterMessageUI = UIManager.Instance.ROUIManager.transform.Find("CenterMessagePanel").gameObject;
canvasGroup = ROCenterMessageUI.GetComponent<CanvasGroup>();
@ -329,7 +329,7 @@ public class CenterMessageUI
animancer.Play(animationB);
//消息队列填加该条消息
_main.UIManager.MessageUI.AddMessageData(data);
UIManager.Instance.MessageUI.AddMessageData(data);
}
// 玩家点击关闭,开始淡出

View File

@ -40,10 +40,10 @@ public class ChooseUI
{
_main = main;
_mapData = mapData;
ROChooseUI = _main.UIManager.ROUIManager.transform.Find("GameUI/ChooseUI").gameObject;
ROChooseUI = UIManager.Instance.ROUIManager.transform.Find("GameUI/ChooseUI").gameObject;
ROChooseUI.transform.Find("CloseButton").GetComponent<Button>().onClick.AddListener(
() => { NeedShow = false;
_main.UIManager.GameUI.MainUI.NeedShow = true;
UIManager.Instance.GameUI.MainUI.NeedShow = true;
});
ROChooseUI.transform.Find("ChooseSecond/ModeButton/Button").GetComponent<Button>().onClick.AddListener(ShowLoadingAndStartGame);
@ -85,11 +85,34 @@ public class ChooseUI
anim.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeIn);
}
//当SecondChoose发生选择之后更新选项情况
public void SelectUpdate()
{
string mode = _secondChoosePanel.transform.Find("SettingBar/Mode")?.GetComponent<ChooseUISettingBarController>()
.GetSelectedButtonName();
string count = _secondChoosePanel.transform.Find("SettingBar/EnemyCount")?.GetComponent<ChooseUISettingBarController>()
.GetSelectedButtonName();
string size = _secondChoosePanel.transform.Find("SettingBar/MapSize")?.GetComponent<ChooseUISettingBarController>()
.GetSelectedButtonName();
string rightSize = count switch
{
"ButtonPlayer2" => "ButtonSize11",
"ButtonPlayer3" => "ButtonSize14",
"ButtonPlayer4" => "ButtonSize16",
_ => "ButtonSize18"
};
if (mode == "PerfectMode")
rightSize = "ButtonSize16";
if(rightSize != size)
_secondChoosePanel.transform.Find("SettingBar/MapSize")?.GetComponent<ChooseUISettingBarController>()
.SetSelectedByButtonName(rightSize);
}
public void ShowLoadingAndStartGame()
{
float loadingTime = 2f;
var loading = _main.UIManager.ROUIManager.transform.Find("LoadingUI");
var loading = UIManager.Instance.ROUIManager.transform.Find("LoadingUI");
var loadingAnim = loading.GetComponent<AnimancerComponent>();
if (loadingAnim == null)
{
@ -111,13 +134,13 @@ public class ChooseUI
{
//TODO 把游戏难度加上
string mapSizeS = ROChooseUI.transform.Find("ChooseSecond/SettingBar/MapSize").GetComponent<ToggleButtonGroupController>()
string mapSizeS = ROChooseUI.transform.Find("ChooseSecond/SettingBar/MapSize").GetComponent<ChooseUISettingBarController>()
.GetSelectedButtonName();
string playerCountS = ROChooseUI.transform.Find("ChooseSecond/SettingBar/EnemyCount").GetComponent<ToggleButtonGroupController>()
string playerCountS = ROChooseUI.transform.Find("ChooseSecond/SettingBar/EnemyCount").GetComponent<ChooseUISettingBarController>()
.GetSelectedButtonName();
string diffS = ROChooseUI.transform.Find("ChooseSecond/SettingBar/Difficulty").GetComponent<ToggleButtonGroupController>()
string diffS = ROChooseUI.transform.Find("ChooseSecond/SettingBar/Difficulty").GetComponent<ChooseUISettingBarController>()
.GetSelectedButtonName();
string modeS = ROChooseUI.transform.Find("ChooseSecond/SettingBar/Mode").GetComponent<ToggleButtonGroupController>()
string modeS = ROChooseUI.transform.Find("ChooseSecond/SettingBar/Mode").GetComponent<ChooseUISettingBarController>()
.GetSelectedButtonName();

View File

@ -4,10 +4,10 @@ using UnityEngine.EventSystems;
using System.Collections.Generic;
using Logic.CrashSight;
public class ToggleButtonGroupController : MonoBehaviour
public class ChooseUISettingBarController : MonoBehaviour
{
public string buttonGroupName = "ButtonGroup";
private Transform buttonGroup;
private List<Button> buttons = new List<Button>();
private Button selectedButton;
@ -61,29 +61,60 @@ public class ToggleButtonGroupController : MonoBehaviour
deft = 1;
OnButtonClicked(buttons[deft]);
OnButtonClicked(buttons[deft],true);
}
}
private void OnButtonClicked(Button clickedButton)
private void OnButtonClicked(Button clickedButton, bool specialWay = false)
{
//mapSize目前设置为不可点击
if (gameObject.name == "MapSize" && !specialWay)
return;
selectedButton = clickedButton;
foreach (Button btn in buttons)
{
Image bgImage = btn.transform.Find("BG")?.GetComponent<Image>();
if (bgImage != null)
if (bgImage == null) continue;
//如果是选中的btn
if(btn == selectedButton )
{
bgImage.color = (btn == selectedButton) ? selectedColor : normalColor;
//修改按钮颜色
bgImage.color = selectedColor;
}
//如果不是选中的btn
else
{
//修改按钮颜色
bgImage.color = normalColor;
}
}
//通知ChooseUI发生了一次选择,更新选择界面的显示
UIManager.Instance.GameUI.ChooseUI.SelectUpdate();
}
//获取选择选项的name
public string GetSelectedButtonName()
{
return selectedButton != null ? selectedButton.name : "";
}
//将一个name的选项选中
public bool SetSelectedByButtonName(string buttonName)
{
foreach (var but in buttons)
{
if (but.gameObject.name == buttonName)
{
OnButtonClicked(but,true);
return true;
}
}
return false;
}
}

View File

@ -17,7 +17,7 @@ public class CityUpgradeActionUI
{
MapData = mapData;
_main = main;
_roCityUpgradeActionUI = _main.UIManager.ROUIManager.transform.Find("CityUpgradeActionPanel").gameObject;;
_roCityUpgradeActionUI = UIManager.Instance.ROUIManager.transform.Find("CityUpgradeActionPanel").gameObject;;
_actionArea = _roCityUpgradeActionUI.transform.Find("ActionArea").gameObject;
_roCityUpgradeActionUI.SetActive(false);
ActionAreaClickHandler();

View File

@ -24,7 +24,7 @@ public class DebugUI
_mapData = mapData;
Transform root = _main.UIManager.ROUIManager.transform;
Transform root = UIManager.Instance.ROUIManager.transform;
Transform panelRoot = root.Find("DebugPanel");
if (panelRoot == null) return;
@ -116,8 +116,8 @@ public class DebugUI
{
if (!DebugCenter.Instance.DebugMode)
return;
if(_main.UIManager.BottomInfoUI != null && RODebugUI.transform.Find("PanelGroup/Selected").gameObject.activeSelf)
_main.UIManager.BottomInfoUI.UpdateDebugInfo();
if(UIManager.Instance.BottomInfoUI != null && RODebugUI.transform.Find("PanelGroup/Selected").gameObject.activeSelf)
UIManager.Instance.BottomInfoUI.UpdateDebugInfo();
//return;
if (_mapData.PlayerMap.SelfPlayerData.Turn != _turn)
{

View File

@ -25,7 +25,7 @@ public class GameUI
{
_main = main;
_mapData = mapData;
ROGameUI = _main.UIManager.ROUIManager.transform.Find("GameUI").gameObject;
ROGameUI = UIManager.Instance.ROUIManager.transform.Find("GameUI").gameObject;
ROGameUI.gameObject.SetActive(true);
}

View File

@ -23,11 +23,8 @@ public class HistoryUI
{
_main = main;
_mapData = mapData;
ROHistoryUI = _main.UIManager.ROUIManager.transform.Find("GameUI/HistoryUI").gameObject;
ROHistoryUI.transform.Find("CloseButton").GetComponent<Button>().onClick.AddListener(
() => { NeedShow = false;
_main.UIManager.GameUI.MainUI.NeedShow = true;
});
ROHistoryUI = UIManager.Instance.ROUIManager.transform.Find("GameUI/HistoryUI").gameObject;
ROHistoryUI.transform.Find("CloseButton").GetComponent<Button>().onClick.AddListener(Hide);
ROHistoryUI.gameObject.SetActive(false);
}

View File

@ -53,11 +53,11 @@ public class LibraryUI
{
_main = main;
_mapData = mapData;
ROLibraryUI = _main.UIManager.ROUIManager.transform.Find("GameUI/LibraryUI").gameObject;
ROLibraryUI = UIManager.Instance.ROUIManager.transform.Find("GameUI/LibraryUI").gameObject;
ROLibraryUI.transform.Find("CloseButton").GetComponent<Button>().onClick.AddListener(
() => {
NeedShow = false;
_main.UIManager.GameUI.MainUI.NeedShow = true;
UIManager.Instance.GameUI.MainUI.NeedShow = true;
});
ROLibraryUI.gameObject.SetActive(false);

View File

@ -17,7 +17,7 @@ public class LoseUI
{
_main = main;
_mapData = mapData;
ROLoseUI = _main.UIManager.ROUIManager.transform.Find("LosePanel").gameObject;
ROLoseUI = UIManager.Instance.ROUIManager.transform.Find("LosePanel").gameObject;
ROLoseUI.gameObject.SetActive(false);
ReturnButton = ROLoseUI.transform.Find("MsgList/Row4/Button").GetComponent<Button>(); // ← 新增按钮获取
@ -48,7 +48,7 @@ public class LoseUI
Debug.Log("t1");
ROLoseUI.gameObject.SetActive(false);
Debug.Log("t2");
_main.UIManager.GameUI.ShowMainUIManager();
UIManager.Instance.GameUI.ShowMainUIManager();
Debug.Log("t3");
}
}

View File

@ -31,7 +31,7 @@ public class MainUI
{
_main = main;
_mapData = mapData;
ROMainUI = _main.UIManager.ROUIManager.transform.Find("GameUI/MainUI").gameObject;
ROMainUI = UIManager.Instance.ROUIManager.transform.Find("GameUI/MainUI").gameObject;
ROMainUI.gameObject.SetActive(false);
// 绑定所有按钮
@ -110,7 +110,7 @@ public class MainUI
private void OnNewGameClicked()
{
NeedShow = false;
_main.UIManager.GameUI.ChooseUI.NeedShow = true;
UIManager.Instance.GameUI.ChooseUI.NeedShow = true;
}
private void OnResumeGameClicked()
@ -127,7 +127,7 @@ public class MainUI
{
float loadingTime = 2f;
var loading = _main.UIManager.ROUIManager.transform.Find("LoadingUI");
var loading = UIManager.Instance.ROUIManager.transform.Find("LoadingUI");
var loadingAnim = loading.GetComponent<AnimancerComponent>();
if (loadingAnim == null)
{
@ -156,21 +156,21 @@ public class MainUI
private void OnLibraryClicked()
{
NeedShow = false;
_main.UIManager.GameUI.LibraryUI.NeedShow = true;
UIManager.Instance.GameUI.LibraryUI.NeedShow = true;
}
private void OnSettingClicked()
{
_main.UIManager.SettingUI.NeedShow = true;
UIManager.Instance.SettingUI.NeedShow = true;
}
private void OnHistoryClicked()
{
_main.UIManager.GameUI.HistoryUI.NeedShow = true;
UIManager.Instance.GameUI.HistoryUI.NeedShow = true;
}
private void OnAboutClicked()
{
_main.UIManager.GameUI.AboutUI.NeedShow = true;
UIManager.Instance.GameUI.AboutUI.NeedShow = true;
}
}

View File

@ -22,7 +22,7 @@ public class MessageUI
{
_main = main;
_mapData = mapData;
ROMessageUI = _main.UIManager.ROUIManager.transform.Find("MessagePanel").gameObject;
ROMessageUI = UIManager.Instance.ROUIManager.transform.Find("MessagePanel").gameObject;
ROMessageUI.gameObject.SetActive(false);
}

View File

@ -24,7 +24,7 @@ public class RankingUI
{
_main = main;
_mapData = mapData;
RORankingUI = _main.UIManager.ROUIManager.transform.Find("RankingPanel").gameObject;
RORankingUI = UIManager.Instance.ROUIManager.transform.Find("RankingPanel").gameObject;
RORankingUI.gameObject.SetActive(false);
}
@ -68,9 +68,11 @@ public class RankingUI
{
row.Find("Name").GetComponent<TextMeshProUGUI>().color = Color.blue;
}
if(name != "???")
MultilingualManager.Instance.SetUIText(row.Find("Name").GetComponent<TextMeshProUGUI>(),name);
if (name != "???")
MultilingualManager.Instance.SetUIText(row.Find("Name").GetComponent<TextMeshProUGUI>(), name);
else
row.Find("Name").GetComponent<TextMeshProUGUI>().text = name;
row.Find("AvatarMask/AvatarImage").GetComponent<Image>().sprite = sprite;
}
else

View File

@ -24,7 +24,7 @@ public class SettingUI
{
_main = main;
_mapData = mapData;
ROSettingUI = _main.UIManager.ROUIManager.transform.Find("SettingPanel").gameObject;
ROSettingUI = UIManager.Instance.ROUIManager.transform.Find("SettingPanel").gameObject;
// 绑定按钮事件
Transform settingList = ROSettingUI.transform.Find("SettingList");
@ -32,7 +32,7 @@ public class SettingUI
settingList.Find("ButtonRow/ExitButton").GetComponent<Button>().onClick.AddListener(() =>
{
NeedShow = false;
_main.UIManager.GameUI.MainUI.NeedShow = true;
UIManager.Instance.GameUI.MainUI.NeedShow = true;
});
// 获取语言按钮

View File

@ -46,7 +46,7 @@ public class TechTreeUI
{
_main = main;
_mapData = mapData;
ROTechTreeUI = _main.UIManager.ROUIManager.transform.Find("TechTreePanel").gameObject;
ROTechTreeUI = UIManager.Instance.ROUIManager.transform.Find("TechTreePanel").gameObject;
ROTechCheckPanel = ROTechTreeUI.transform.Find("TechCheckPanel").gameObject;
//绑定关闭按钮点击事件
ROTechTreeUI.transform.Find("CloseButton").GetComponent<Button>().onClick.AddListener(()=>PlayAnimTechTreeShowHide(false));
@ -288,7 +288,7 @@ public class TechTreeUI
Main.PlayerLogic.ResearchTech(_main.MapData,_main.MapData.PlayerMap.SelfPlayerData,_techTypeChoose,_techNoChooseCost);
SetTechCheckPanelShowHide(false);
RenderUpdateTechTreeData();
_main.UIManager.TopBarUI.RenderMark = true;
UIManager.Instance.TopBarUI.RenderMark = true;
}
@ -306,7 +306,7 @@ public class TechTreeUI
AnimancerComponent animancer = ROTechTreeUI.GetComponent<AnimancerComponent>();
AnimationClip animationB = Resources.Load<AnimationClip>("Animations/UI/TechTreePanelFadeOut"); ; // 需要播放的动画片段
animancer.Play(animationB); // 直接播放动画B
_main.UIManager.BottomBarUI.SetBottomBarShowHide(true);
UIManager.Instance.BottomBarUI.SetBottomBarShowHide(true);
Timer.Instance.TimerRegister(ROTechTreeUI, OnFadeOutComplete,0.2f);
}

View File

@ -16,7 +16,7 @@ public class TimeEndUI
{
_main = main;
_mapData = mapData;
ROTimeEndUI = _main.UIManager.ROUIManager.transform.Find("TimeEndPanel").gameObject;
ROTimeEndUI = UIManager.Instance.ROUIManager.transform.Find("TimeEndPanel").gameObject;
ROTimeEndUI.gameObject.SetActive(false);
ReturnButton = ROTimeEndUI.transform.Find("MsgList/Row4/Button").GetComponent<Button>(); // ← 新增按钮
ReturnButton.onClick.AddListener(OnReturnClicked); // ← 新增点击监听
@ -51,6 +51,6 @@ public class TimeEndUI
{
_main.GameLogic.ChangeState(GameState.Menu);
ROTimeEndUI.gameObject.SetActive(false);
_main.UIManager.GameUI.ShowMainUIManager();
UIManager.Instance.GameUI.ShowMainUIManager();
}
}

View File

@ -22,7 +22,7 @@ public class TopBarUI
{
_main = main;
_mapData = mapData;
ROTopBarUI = _main.UIManager.ROUIManager.transform.Find("TopBarPanel").gameObject;
ROTopBarUI = UIManager.Instance.ROUIManager.transform.Find("TopBarPanel").gameObject;
_money = ROTopBarUI.transform.Find("MoneyPanel/Text").GetComponent<TextMeshProUGUI>();
_faith = ROTopBarUI.transform.Find("FaithPanel/Text").GetComponent<TextMeshProUGUI>();
_turn = ROTopBarUI.transform.Find("TurnPanel/Text").GetComponent<TextMeshProUGUI>();

View File

@ -9,6 +9,8 @@ using UnityEngine.AI;
public class UIManager
{
public static UIManager Instance { get; private set; }
private Main _main;
private MapData _mapData;
public GameObject ROUIManager;
@ -31,13 +33,18 @@ public class UIManager
public MessageUI MessageUI;
public RankingUI RankingUI;
public DebugUI DebugUI;
GameObject mainUI;
GameObject chooseTribeUI;
public GameObject AIPlayingHint;
public bool AIPlaying = false;
public UIManager(Main main)//, MapData mapData)
public UIManager()
{
Instance = this;
}
public void Init(Main main)
{
_main = main;
//_mapData = mapData;
@ -49,10 +56,6 @@ public class UIManager
break;
}
AIPlayingHint = ROUIManager.transform.Find("AIPlayingHint").gameObject;
}
public void Init()
{
SettingUI = new SettingUI(_main, _mapData);
GameUI = new GameUI(_main,_mapData);
//这里要异步new和init不然new里会用到还没被new完的自己

View File

@ -16,7 +16,7 @@ public class WinUI
{
_main = main;
_mapData = mapData;
ROWinUI = _main.UIManager.ROUIManager.transform.Find("WinPanel").gameObject;
ROWinUI = UIManager.Instance.ROUIManager.transform.Find("WinPanel").gameObject;
ROWinUI.gameObject.SetActive(false);
ReturnButton = ROWinUI.transform.Find("MsgList/Row4/Button").GetComponent<Button>(); // ← 新增按钮
ReturnButton.onClick.AddListener(OnReturnClicked); // ← 新增点击监听
@ -43,6 +43,6 @@ public class WinUI
{
_main.GameLogic.ChangeState(GameState.Finished);
ROWinUI.gameObject.SetActive(false);
_main.UIManager.GameUI.ShowMainUIManager();
UIManager.Instance.GameUI.ShowMainUIManager();
}
}