Degullmok-client/Assets/Script/Replay/ReplayPanelController.cs
HaeinLEE 73121ac1f2 [Feat] GiboPanel 기보데이터 불러오기
TestPanelController기준으로 작업 재민님 씬에서 테스트 완료
2025-03-18 11:41:16 +09:00

62 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Serialization;
public class ReplayPanelController : MonoBehaviour
{
[SerializeField] private RectTransform panelRectTransform;
[SerializeField] private GameObject replayCellPrefab;
[SerializeField] private Transform contentTransform;
private CanvasGroup _backgroundCanvasGroup;
public delegate void PanelControllerHideDelegate();
private string _myNickname;
private void Awake()
{
_backgroundCanvasGroup = GetComponent<CanvasGroup>();
_myNickname = UserManager.Instance.Nickname;
}
private void Start()
{
List<ReplayRecord> records = new List<ReplayRecord>();
// ReplayManager에서 가져온 기보 데이터들을 패널 셀에 초기화
records = ReplayManager.Instance.LoadReplayDatas();
foreach (var replayRecord in records)
{
var replayCellButtonObject = Instantiate(replayCellPrefab, contentTransform);
ReplayCell replayCell = replayCellButtonObject.GetComponent<ReplayCell>();
Enums.PlayerType myPlayerType = _myNickname.Equals(replayRecord.playerA) ? Enums.PlayerType.PlayerA : Enums.PlayerType.PlayerB;
string opponentNickname = myPlayerType==Enums.PlayerType.PlayerA ? replayRecord.playerB : replayRecord.playerA;
replayCell.SetMyPlayerType(myPlayerType);
replayCell.SetWinImage(myPlayerType.ToString().Equals(replayRecord.winnerPlayerType));
replayCell.SetOpponentPlayerNickname(opponentNickname);
replayCell.SetRecordDate(replayRecord.gameDate);
replayCell.SetReplayRecord(replayRecord);
}
}
public void OnClickCloseButton()
{
Hide(() =>
{
Destroy(gameObject);
});
}
public void Hide(PanelControllerHideDelegate hideDelegate = null)
{
_backgroundCanvasGroup.alpha = 0;
panelRectTransform.localScale = Vector3.zero;
hideDelegate?.Invoke();
}
}