DO-46 [Feat] 게임 승패 이펙트 패널 띄우기

This commit is contained in:
Lim0_C 2025-03-25 18:07:10 +09:00
parent dec05eb4b7
commit 5801348bc7
5 changed files with 62 additions and 22 deletions

View File

@ -17,6 +17,7 @@ public class GameUIController : MonoBehaviour
[SerializeField] private Image profileImageB; [SerializeField] private Image profileImageB;
[SerializeField] private Sprite[] profileImageSprites; //0. 기본 드래곤 1. 기본 호랑이 2.아이보리 드래곤 3. 아이보리 호랑이 [SerializeField] private Sprite[] profileImageSprites; //0. 기본 드래곤 1. 기본 호랑이 2.아이보리 드래곤 3. 아이보리 호랑이
[SerializeField] private Sprite[] indicatorSprites; //0. active 1. inactive [SerializeField] private Sprite[] indicatorSprites; //0. active 1. inactive
private Sprite _originalSpriteA; private Sprite _originalSpriteA;
private Sprite _originalSpriteB; private Sprite _originalSpriteB;
@ -45,14 +46,7 @@ public class GameUIController : MonoBehaviour
{ {
GameManager.Instance.panelManager.OpenSettingsPanel(); 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) public void InitPlayersName(string playerNameA, string playerNameB)
{ {
playerANameText.text = playerNameA; playerANameText.text = playerNameA;

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: b8e3d5d18e544774eb144db419a327d2 guid: ded4103a87c2de84db5f4ce2675227ef
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1457,7 +1457,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &405965270916774547 --- !u!224 &405965270916774547
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1713,7 +1713,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: tester m_text: "\uD654\uB791\uB098\uBE44"
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 85a19688db53c77469fc4406b01045da, type: 2} m_fontAsset: {fileID: 11400000, guid: 85a19688db53c77469fc4406b01045da, type: 2}
m_sharedMaterial: {fileID: -2477908578676791210, guid: 85a19688db53c77469fc4406b01045da, type: 2} m_sharedMaterial: {fileID: -2477908578676791210, guid: 85a19688db53c77469fc4406b01045da, type: 2}
@ -1799,7 +1799,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!224 &8172929902404983356 --- !u!224 &8172929902404983356
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -21,11 +21,9 @@ public abstract class BasePlayerState
if (gameLogic.CheckGameWin(playerType, row, col)) 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;
{ GameManager.Instance.panelManager.OpenEffectPanel(gameResult);
var gameResult = playerType == Enums.PlayerType.PlayerA? Enums.GameResult.Win:Enums.GameResult.Lose; gameLogic.EndGame(gameResult);
gameLogic.EndGame(gameResult);
});
} }
else else
{ {
@ -33,10 +31,8 @@ public abstract class BasePlayerState
{ {
if (gameLogic.CheckGameDraw()) if (gameLogic.CheckGameDraw())
{ {
GameManager.Instance.panelManager.OpenConfirmPanel($"Game Over: Draw", () => GameManager.Instance.panelManager.OpenEffectPanel(Enums.GameResult.Draw);
{ gameLogic.EndGame(Enums.GameResult.Draw);
gameLogic.EndGame(Enums.GameResult.Draw);
});
} }
else else
{ {
@ -369,7 +365,7 @@ public class GameLogic : MonoBehaviour
SetState(null); SetState(null);
ReplayManager.Instance.SaveReplayDataResult(result); ReplayManager.Instance.SaveReplayDataResult(result);
//TODO: 게임 종료 후 행동 구현 //TODO: 게임 종료 후 행동 구현
SceneManager.LoadScene("Main"); // SceneManager.LoadScene("Main");
} }
//승리 확인 함수 //승리 확인 함수

View File

@ -16,6 +16,7 @@ public class PanelManager : MonoBehaviour
private LoadingPanelController loadingPanelController; private LoadingPanelController loadingPanelController;
private Dictionary<string, GameObject> panelPrefabs = new Dictionary<string, GameObject>(); private Dictionary<string, GameObject> panelPrefabs = new Dictionary<string, GameObject>();
private Dictionary<string, GameObject> effectPanelPrefabs = new Dictionary<string, GameObject>();
private void Awake() private void Awake()
{ {
@ -27,6 +28,13 @@ public class PanelManager : MonoBehaviour
{ {
panelPrefabs[prefab.name] = prefab; panelPrefabs[prefab.name] = prefab;
} }
//게임결과 이펙트 패널
GameObject[] effectPrefabs = Resources.LoadAll<GameObject>("Prefabs/Effects");
foreach (GameObject effect in effectPrefabs)
{
effectPanelPrefabs[effect.name] = effect;
}
Debug.Log($"총 {panelPrefabs.Count}개의 패널이 로드됨."); Debug.Log($"총 {panelPrefabs.Count}개의 패널이 로드됨.");
} }
@ -52,6 +60,48 @@ public class PanelManager : MonoBehaviour
return null; 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() public void OpenMainPanel()
{ {