diff --git a/Assets/GameUIController.cs b/Assets/GameUIController.cs index d5f89d4..b602f67 100644 --- a/Assets/GameUIController.cs +++ b/Assets/GameUIController.cs @@ -17,6 +17,7 @@ public class GameUIController : MonoBehaviour [SerializeField] private Image profileImageB; [SerializeField] private Sprite[] profileImageSprites; //0. 기본 드래곤 1. 기본 호랑이 2.아이보리 드래곤 3. 아이보리 호랑이 [SerializeField] private Sprite[] indicatorSprites; //0. active 1. inactive + private Sprite _originalSpriteA; private Sprite _originalSpriteB; @@ -45,14 +46,7 @@ public class GameUIController : MonoBehaviour { GameManager.Instance.panelManager.OpenSettingsPanel(); } - - public void InitUI() - { - if (UserManager.Instance == null) return; - retryButton.SetActive(false); - playerANameText.text = UserManager.Instance.Nickname; - } - + public void InitPlayersName(string playerNameA, string playerNameB) { playerANameText.text = playerNameA; diff --git a/Assets/LYC/GameLYC.unity.meta b/Assets/LYC/GameLYC.unity.meta index d9e199b..cea0f0a 100644 --- a/Assets/LYC/GameLYC.unity.meta +++ b/Assets/LYC/GameLYC.unity.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b8e3d5d18e544774eb144db419a327d2 +guid: ded4103a87c2de84db5f4ce2675227ef DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Resources/Prefabs/Panels/Main Panel.prefab b/Assets/Resources/Prefabs/Panels/Main Panel.prefab index 72c53db..ca0fdef 100644 --- a/Assets/Resources/Prefabs/Panels/Main Panel.prefab +++ b/Assets/Resources/Prefabs/Panels/Main Panel.prefab @@ -1457,7 +1457,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &405965270916774547 RectTransform: m_ObjectHideFlags: 0 @@ -1713,7 +1713,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: tester + m_text: "\uD654\uB791\uB098\uBE44" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 85a19688db53c77469fc4406b01045da, type: 2} m_sharedMaterial: {fileID: -2477908578676791210, guid: 85a19688db53c77469fc4406b01045da, type: 2} @@ -1799,7 +1799,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &8172929902404983356 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Script/Game/GameLogic.cs b/Assets/Script/Game/GameLogic.cs index 74d6c80..3a1176d 100644 --- a/Assets/Script/Game/GameLogic.cs +++ b/Assets/Script/Game/GameLogic.cs @@ -21,11 +21,9 @@ public abstract class BasePlayerState if (gameLogic.CheckGameWin(playerType, row, col)) { - GameManager.Instance.panelManager.OpenConfirmPanel($"Game Over: {playerType} Win", () => - { - var gameResult = playerType == Enums.PlayerType.PlayerA? Enums.GameResult.Win:Enums.GameResult.Lose; - gameLogic.EndGame(gameResult); - }); + var gameResult = playerType == Enums.PlayerType.PlayerA? Enums.GameResult.Win:Enums.GameResult.Lose; + GameManager.Instance.panelManager.OpenEffectPanel(gameResult); + gameLogic.EndGame(gameResult); } else { @@ -33,10 +31,8 @@ public abstract class BasePlayerState { if (gameLogic.CheckGameDraw()) { - GameManager.Instance.panelManager.OpenConfirmPanel($"Game Over: Draw", () => - { - gameLogic.EndGame(Enums.GameResult.Draw); - }); + GameManager.Instance.panelManager.OpenEffectPanel(Enums.GameResult.Draw); + gameLogic.EndGame(Enums.GameResult.Draw); } else { @@ -369,7 +365,7 @@ public class GameLogic : MonoBehaviour SetState(null); ReplayManager.Instance.SaveReplayDataResult(result); //TODO: 게임 종료 후 행동 구현 - SceneManager.LoadScene("Main"); + // SceneManager.LoadScene("Main"); } //승리 확인 함수 diff --git a/Assets/Script/UI/PanelController/PanelManager.cs b/Assets/Script/UI/PanelController/PanelManager.cs index cdda752..0b036bc 100644 --- a/Assets/Script/UI/PanelController/PanelManager.cs +++ b/Assets/Script/UI/PanelController/PanelManager.cs @@ -16,6 +16,7 @@ public class PanelManager : MonoBehaviour private LoadingPanelController loadingPanelController; private Dictionary panelPrefabs = new Dictionary(); + private Dictionary effectPanelPrefabs = new Dictionary(); private void Awake() { @@ -27,6 +28,13 @@ public class PanelManager : MonoBehaviour { panelPrefabs[prefab.name] = prefab; } + + //게임결과 이펙트 패널 + GameObject[] effectPrefabs = Resources.LoadAll("Prefabs/Effects"); + foreach (GameObject effect in effectPrefabs) + { + effectPanelPrefabs[effect.name] = effect; + } Debug.Log($"총 {panelPrefabs.Count}개의 패널이 로드됨."); } @@ -52,6 +60,48 @@ public class PanelManager : MonoBehaviour return null; } + + #region 게임결과 이펙트 패널 관련 + + public GameObject GetEffectPanel(string panelName) + { + if (effectPanelPrefabs.TryGetValue(panelName, out GameObject prefab)) + { + return Instantiate(prefab, _canvas.transform); + } + else + { + Debug.LogError($"패널 '{panelName}'을 찾을 수 없습니다."); + } + + return null; + } + + public void OpenEffectPanel(Enums.GameResult gameResult) + { + switch (gameResult) + { + case Enums.GameResult.Win: + if (_canvas != null) + { + var winEffectPanelObject = GetEffectPanel("Win Effect Panel"); + } + break; + case Enums.GameResult.Lose: + if (_canvas != null) + { + var winEffectPanelObject = GetEffectPanel("Lose Effect Panel"); + } + break; + case Enums.GameResult.Draw: + if (_canvas != null) + { + var winEffectPanelObject = GetEffectPanel("Draw Effect Panel"); + } + break; + } + } + #endregion public void OpenMainPanel() {