DO-46 [Feat] 게임 승패 이펙트 패널 띄우기
This commit is contained in:
parent
dec05eb4b7
commit
5801348bc7
@ -18,6 +18,7 @@ public class GameUIController : MonoBehaviour
|
|||||||
[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;
|
||||||
|
|
||||||
@ -46,13 +47,6 @@ 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;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b8e3d5d18e544774eb144db419a327d2
|
guid: ded4103a87c2de84db5f4ce2675227ef
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
@ -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
|
||||||
|
@ -20,12 +20,10 @@ public abstract class BasePlayerState
|
|||||||
gameLogic.CountStoneCounter();
|
gameLogic.CountStoneCounter();
|
||||||
|
|
||||||
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;
|
var gameResult = playerType == Enums.PlayerType.PlayerA? Enums.GameResult.Win:Enums.GameResult.Lose;
|
||||||
|
GameManager.Instance.panelManager.OpenEffectPanel(gameResult);
|
||||||
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");
|
||||||
}
|
}
|
||||||
|
|
||||||
//승리 확인 함수
|
//승리 확인 함수
|
||||||
|
@ -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()
|
||||||
{
|
{
|
||||||
@ -28,6 +29,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}개의 패널이 로드됨.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,6 +61,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()
|
||||||
{
|
{
|
||||||
if (_canvas != null)
|
if (_canvas != null)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user