Merge pull request #52 from Degulleo/DO-46-게임-씬-보조-기능-추가
Do 46 게임 씬 보조 기능 추가
This commit is contained in:
commit
94dc86f644
@ -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:
|
||||||
|
@ -575,7 +575,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 0}
|
m_Color: {r: 0, g: 0, b: 0, a: 0.5882353}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 1
|
||||||
@ -618,10 +618,9 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
bannerObj: {fileID: 7291411618834705046}
|
bannerObj: {fileID: 7291411618834705046}
|
||||||
bannerText: {fileID: 5108301403921453943}
|
bannerText: {fileID: 5108301403921453943}
|
||||||
|
interval: 0.1
|
||||||
dragonOpenEyes: {fileID: 3881260292094838299}
|
dragonOpenEyes: {fileID: 3881260292094838299}
|
||||||
dragonCloseEyes: {fileID: 6707373289257723271}
|
dragonCloseEyes: {fileID: 6707373289257723271}
|
||||||
tigerOpenEyes: {fileID: 1508819185250841244}
|
tigerOpenEyes: {fileID: 1508819185250841244}
|
||||||
tigerCloseEyes: {fileID: 399504369641388738}
|
tigerCloseEyes: {fileID: 399504369641388738}
|
||||||
fullText: "\uBB34\uC2B9\uBD80 \uC785\uB2C8\uB2E4"
|
|
||||||
interval: 0.1
|
|
||||||
flipDuration: 0.3
|
flipDuration: 0.3
|
||||||
|
@ -499,7 +499,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 0}
|
m_Color: {r: 0, g: 0, b: 0, a: 0.5882353}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 1
|
||||||
@ -542,8 +542,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
bannerObj: {fileID: 7291411618834705046}
|
bannerObj: {fileID: 7291411618834705046}
|
||||||
bannerText: {fileID: 5108301403921453943}
|
bannerText: {fileID: 5108301403921453943}
|
||||||
|
interval: 0.1
|
||||||
characterOpenEyes: {fileID: 1632927645355555415}
|
characterOpenEyes: {fileID: 1632927645355555415}
|
||||||
characterCloseEyes: {fileID: 3881260292094838299}
|
characterCloseEyes: {fileID: 3881260292094838299}
|
||||||
depressedEffect: {fileID: 155037671892554820}
|
depressedEffect: {fileID: 155037671892554820}
|
||||||
fullText: "\uD328\uBC30\uD588\uC2B5\uB2C8\uB2E4"
|
|
||||||
interval: 0.1
|
|
||||||
|
@ -837,7 +837,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 0}
|
m_Color: {r: 0, g: 0, b: 0, a: 0.5882353}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 1
|
||||||
@ -866,6 +866,9 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 9b132148519758c42824252ec9a2d3a4, type: 3}
|
m_Script: {fileID: 11500000, guid: 9b132148519758c42824252ec9a2d3a4, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
bannerObj: {fileID: 0}
|
||||||
|
bannerText: {fileID: 5108301403921453943}
|
||||||
|
interval: 0.1
|
||||||
haloEffectImg: {fileID: 376994097320605198}
|
haloEffectImg: {fileID: 376994097320605198}
|
||||||
characterImg: {fileID: 3881260292094838299}
|
characterImg: {fileID: 3881260292094838299}
|
||||||
shineEffectImg:
|
shineEffectImg:
|
||||||
@ -875,9 +878,6 @@ MonoBehaviour:
|
|||||||
circleEffectImg:
|
circleEffectImg:
|
||||||
- {fileID: 1661063685800461951}
|
- {fileID: 1661063685800461951}
|
||||||
- {fileID: 5812078995592861983}
|
- {fileID: 5812078995592861983}
|
||||||
bannerText: {fileID: 5108301403921453943}
|
|
||||||
fullText: "\uC2B9\uB9AC\uD588\uC2B5\uB2C8\uB2E4!"
|
|
||||||
interval: 0.1
|
|
||||||
--- !u!225 &4545556044007292713
|
--- !u!225 &4545556044007292713
|
||||||
CanvasGroup:
|
CanvasGroup:
|
||||||
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: "\uD638\uB7AD\uC774"
|
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}
|
||||||
|
@ -328,7 +328,7 @@ Camera:
|
|||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_ClearFlags: 1
|
m_ClearFlags: 1
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
m_BackGroundColor: {r: 0.5372549, g: 0.654902, b: 0.5803922, a: 1}
|
||||||
m_projectionMatrixMode: 1
|
m_projectionMatrixMode: 1
|
||||||
m_GateFitMode: 2
|
m_GateFitMode: 2
|
||||||
m_FOVAxisMode: 0
|
m_FOVAxisMode: 0
|
||||||
|
@ -9,8 +9,6 @@
|
|||||||
public const int MinCountForDrawCheck = 150;
|
public const int MinCountForDrawCheck = 150;
|
||||||
public const int RAING_POINTS = 10;
|
public const int RAING_POINTS = 10;
|
||||||
|
|
||||||
public string[] AI_NAMIES = { "이세돌", "신사동호랭이","진짜인간임","종로3가짱돌","마스터김춘배","62세황순자","고준일 강사님"};
|
|
||||||
|
|
||||||
public enum MultiplayManagerState
|
public enum MultiplayManagerState
|
||||||
{
|
{
|
||||||
CreateRoom, // 방 생성
|
CreateRoom, // 방 생성
|
||||||
|
@ -4,6 +4,7 @@ using System.Collections.Generic;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.SceneManagement;
|
using UnityEngine.SceneManagement;
|
||||||
using PimDeWitte.UnityMainThreadDispatcher;
|
using PimDeWitte.UnityMainThreadDispatcher;
|
||||||
|
using Random = UnityEngine.Random;
|
||||||
|
|
||||||
public abstract class BasePlayerState
|
public abstract class BasePlayerState
|
||||||
{
|
{
|
||||||
@ -21,11 +22,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 +32,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
|
||||||
{
|
{
|
||||||
@ -300,20 +297,24 @@ public class GameLogic : MonoBehaviour
|
|||||||
switch (gameType)
|
switch (gameType)
|
||||||
{
|
{
|
||||||
// TODO: 현재 싱글 플레이로 바로 넘어가지 않기 때문에 미사용 중
|
// TODO: 현재 싱글 플레이로 바로 넘어가지 않기 때문에 미사용 중
|
||||||
case Enums.GameType.SinglePlay:
|
// case Enums.GameType.SinglePlay:
|
||||||
firstPlayerState = new PlayerState(true);
|
// firstPlayerState = new PlayerState(true);
|
||||||
secondPlayerState = new AIState();
|
// secondPlayerState = new AIState();
|
||||||
// AI 난이도 설정(급수 설정)
|
// // AI 난이도 설정(급수 설정)
|
||||||
OmokAI.Instance.SetRating(UserManager.Instance.Rating);
|
// OmokAI.Instance.SetRating(UserManager.Instance.Rating);
|
||||||
|
//
|
||||||
//유저 이름 사진 초기화
|
// //AI닉네임 랜덤생성
|
||||||
GameManager.Instance.InitPlayersName(UserManager.Instance.Nickname, "AIPlayer");
|
// var aiName = RandomAINickname();
|
||||||
GameManager.Instance.InitProfileImages(UserManager.Instance.imageIndex, 1);
|
// var imageIndex = UnityEngine.Random.Range(0, 2);
|
||||||
|
//
|
||||||
ReplayManager.Instance.InitReplayData(UserManager.Instance.Nickname,"PlayerAI", UserManager.Instance.imageIndex, 1);
|
// //유저 이름 사진 초기화
|
||||||
|
// GameManager.Instance.InitPlayersName(UserManager.Instance.Nickname, aiName);
|
||||||
SetState(firstPlayerState);
|
// GameManager.Instance.InitProfileImages(UserManager.Instance.imageIndex, imageIndex);
|
||||||
break;
|
//
|
||||||
|
// ReplayManager.Instance.InitReplayData(UserManager.Instance.Nickname,aiName, UserManager.Instance.imageIndex, imageIndex);
|
||||||
|
//
|
||||||
|
// SetState(firstPlayerState);
|
||||||
|
// break;
|
||||||
case Enums.GameType.MultiPlay:
|
case Enums.GameType.MultiPlay:
|
||||||
// 메인 스레드에서 실행 - UI 업데이트는 메인 스레드에서 실행 필요
|
// 메인 스레드에서 실행 - UI 업데이트는 메인 스레드에서 실행 필요
|
||||||
UnityMainThreadDispatcher.Instance().Enqueue(() =>
|
UnityMainThreadDispatcher.Instance().Enqueue(() =>
|
||||||
@ -421,6 +422,17 @@ public class GameLogic : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//AI닉네임 랜덤 생성
|
||||||
|
private string RandomAINickname()
|
||||||
|
{
|
||||||
|
string[] AI_NAMIES = { "이세돌", "신사동호랭이","진짜인간임","종로3가짱돌","마스터김춘배","62세황순자","고준일 강사님"};
|
||||||
|
|
||||||
|
var index = UnityEngine.Random.Range(0, AI_NAMIES.Length);
|
||||||
|
|
||||||
|
return AI_NAMIES[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void SwitchToSinglePlayer()
|
public void SwitchToSinglePlayer()
|
||||||
{
|
{
|
||||||
_multiplayManager?.Dispose();
|
_multiplayManager?.Dispose();
|
||||||
@ -435,17 +447,21 @@ public class GameLogic : MonoBehaviour
|
|||||||
// AI 난이도 설정(급수 설정)
|
// AI 난이도 설정(급수 설정)
|
||||||
OmokAI.Instance.SetRating(UserManager.Instance.Rating);
|
OmokAI.Instance.SetRating(UserManager.Instance.Rating);
|
||||||
|
|
||||||
|
//AI닉네임 랜덤생성
|
||||||
|
var aiName = RandomAINickname();
|
||||||
|
var imageIndex = UnityEngine.Random.Range(0, 2);
|
||||||
|
|
||||||
// 메인 스레드에서 실행 - UI 업데이트는 메인 스레드에서 실행 필요
|
// 메인 스레드에서 실행 - UI 업데이트는 메인 스레드에서 실행 필요
|
||||||
UnityMainThreadDispatcher.Instance().Enqueue(() =>
|
UnityMainThreadDispatcher.Instance().Enqueue(() =>
|
||||||
{
|
{
|
||||||
// 스레드 확인 로그: 추후 디버깅 시 필요할 수 있을 것 같아 남겨둡니다
|
// 스레드 확인 로그: 추후 디버깅 시 필요할 수 있을 것 같아 남겨둡니다
|
||||||
// Debug.Log($"[UnityMainThreadDispatcher] 실행 스레드: {System.Threading.Thread.CurrentThread.ManagedThreadId}");
|
// Debug.Log($"[UnityMainThreadDispatcher] 실행 스레드: {System.Threading.Thread.CurrentThread.ManagedThreadId}");
|
||||||
// UI 업데이트
|
|
||||||
GameManager.Instance.InitPlayersName(UserManager.Instance.Nickname, "AIPlayer");
|
|
||||||
GameManager.Instance.InitProfileImages(UserManager.Instance.imageIndex, 1);
|
|
||||||
|
|
||||||
|
//유저 이름 사진 초기화
|
||||||
|
GameManager.Instance.InitPlayersName(UserManager.Instance.Nickname, aiName);
|
||||||
|
GameManager.Instance.InitProfileImages(UserManager.Instance.imageIndex, imageIndex);
|
||||||
// 리플레이 데이터 업데이트
|
// 리플레이 데이터 업데이트
|
||||||
ReplayManager.Instance.InitReplayData(UserManager.Instance.Nickname, "PlayerAI", UserManager.Instance.imageIndex, 1);
|
ReplayManager.Instance.InitReplayData(UserManager.Instance.Nickname,aiName, UserManager.Instance.imageIndex, imageIndex);
|
||||||
|
|
||||||
// 로딩 패널 열려있으면 닫기
|
// 로딩 패널 열려있으면 닫기
|
||||||
GameManager.Instance.panelManager.CloseLoadingPanel();
|
GameManager.Instance.panelManager.CloseLoadingPanel();
|
||||||
@ -564,7 +580,6 @@ public class GameLogic : MonoBehaviour
|
|||||||
SetState(null);
|
SetState(null);
|
||||||
ReplayManager.Instance.SaveReplayDataResult(result);
|
ReplayManager.Instance.SaveReplayDataResult(result);
|
||||||
//TODO: 게임 종료 후 행동 구현
|
//TODO: 게임 종료 후 행동 구현
|
||||||
SceneManager.LoadScene("Main");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//승리 확인 함수
|
//승리 확인 함수
|
||||||
|
@ -11,7 +11,7 @@ public class GameManager : Singleton<GameManager>
|
|||||||
private Enums.GameType _gameType;
|
private Enums.GameType _gameType;
|
||||||
private GameLogic _gameLogic;
|
private GameLogic _gameLogic;
|
||||||
private StoneController _stoneController;
|
private StoneController _stoneController;
|
||||||
private GameObject _omokBoardImage;
|
private GameObject _camera;
|
||||||
private GameUIController _gameUIController;
|
private GameUIController _gameUIController;
|
||||||
|
|
||||||
[SerializeField] private GameObject panelManagerPrefab;
|
[SerializeField] private GameObject panelManagerPrefab;
|
||||||
@ -46,10 +46,12 @@ public class GameManager : Singleton<GameManager>
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (_stoneController != null && _omokBoardImage != null)
|
if (_camera != null)
|
||||||
{
|
{
|
||||||
_stoneController.GetComponent<Transform>().DOShakePosition(0.5f, 0.5f);
|
_camera.transform.DOShakePosition(0.5f, 0.5f).OnComplete(() =>
|
||||||
_omokBoardImage.GetComponent<Transform>().DOShakePosition(0.5f, 0.5f);
|
{
|
||||||
|
_camera.transform.position = new Vector3(0,0,-10);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -76,7 +78,7 @@ public class GameManager : Singleton<GameManager>
|
|||||||
_stoneController = GameObject.FindObjectOfType<StoneController>();
|
_stoneController = GameObject.FindObjectOfType<StoneController>();
|
||||||
_stoneController.InitStones();
|
_stoneController.InitStones();
|
||||||
var fioTimer = FindObjectOfType<FioTimer>();
|
var fioTimer = FindObjectOfType<FioTimer>();
|
||||||
_omokBoardImage = GameObject.FindObjectOfType<SpriteRenderer>().gameObject;
|
_camera = GameObject.FindObjectOfType<Camera>().gameObject;
|
||||||
_gameUIController = GameObject.FindObjectOfType<GameUIController>();
|
_gameUIController = GameObject.FindObjectOfType<GameUIController>();
|
||||||
_gameLogic = new GameLogic(_stoneController, _gameType, fioTimer);
|
_gameLogic = new GameLogic(_stoneController, _gameType, fioTimer);
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ public class PanelManager : MonoBehaviour
|
|||||||
private GameObject loadingPanelObject;
|
private GameObject loadingPanelObject;
|
||||||
|
|
||||||
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()
|
||||||
{
|
{
|
||||||
@ -29,6 +30,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}개의 패널이 로드됨.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,6 +62,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