Degullmok-client/Assets/Script/Replay/ReplayPanelController.cs
2025-03-13 21:20:47 +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>();
//TODO:Test용 닉네임 나중에 삭제하고 PlayerInfo에서 가져올 것
_myNickname = "Gildong";
}
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>();
string myPlayerType = _myNickname.Equals(replayRecord.playerA)?"PlayerA":"PlayerB";
string opponentNickname = _myNickname.Equals(replayRecord.playerA)?replayRecord.playerB:replayRecord.playerA;
replayCell.SetMyPlayerType(myPlayerType);
replayCell.SetWinImage(myPlayerType.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();
}
}