[Feat] GiboPanel 기보데이터 불러오기

TestPanelController기준으로 작업 재민님 씬에서 테스트 완료
This commit is contained in:
HaeinLEE 2025-03-18 11:41:16 +09:00
parent bd5b74429f
commit 73121ac1f2
14 changed files with 268 additions and 41 deletions

View File

@ -195,6 +195,7 @@ MonoBehaviour:
panelRectTransform: {fileID: 1819504122199746525} panelRectTransform: {fileID: 1819504122199746525}
scrollItemPrefab: {fileID: 7605012172595602668, guid: bef1de10a3cc5834a95a8689a2de2bb7, type: 3} scrollItemPrefab: {fileID: 7605012172595602668, guid: bef1de10a3cc5834a95a8689a2de2bb7, type: 3}
content: {fileID: 7514948643227889924} content: {fileID: 7514948643227889924}
replayCellPrefab: {fileID: 6381393519116383223, guid: e4d9ccbb1a6d7b1408923e47b6e7b690, type: 3}
--- !u!1 &3668037476601755215 --- !u!1 &3668037476601755215
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -438,7 +439,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0} m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: -392, y: -56.893047} m_AnchoredPosition: {x: -392, y: 0}
m_SizeDelta: {x: 784, y: 0} m_SizeDelta: {x: 784, y: 0}
m_Pivot: {x: 0, y: 1} m_Pivot: {x: 0, y: 1}
--- !u!114 &7384686566427463252 --- !u!114 &7384686566427463252

View File

@ -134,6 +134,81 @@ MonoBehaviour:
m_hasFontAssetChanged: 0 m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0} m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &2925920792659963135
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6243070150297500116}
- component: {fileID: 548835481879647278}
- component: {fileID: 5279064539717668063}
m_Layer: 5
m_Name: WinImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6243070150297500116
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2925920792659963135}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 782808433606758938}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &548835481879647278
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2925920792659963135}
m_CullTransparentMesh: 1
--- !u!114 &5279064539717668063
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2925920792659963135}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.50931454, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4113615148583358116 --- !u!1 &4113615148583358116
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -226,8 +301,8 @@ MonoBehaviour:
m_faceColor: m_faceColor:
serializedVersion: 2 serializedVersion: 2
rgba: 4294967295 rgba: 4294967295
m_fontSize: 36 m_fontSize: 30
m_fontSizeBase: 36 m_fontSizeBase: 30
m_fontWeight: 400 m_fontWeight: 400
m_enableAutoSizing: 0 m_enableAutoSizing: 0
m_fontSizeMin: 18 m_fontSizeMin: 18
@ -268,6 +343,81 @@ MonoBehaviour:
m_hasFontAssetChanged: 0 m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0} m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4210606424410061969
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 379352358508670316}
- component: {fileID: 1085849272306452399}
- component: {fileID: 7205159236927224312}
m_Layer: 5
m_Name: LoseImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &379352358508670316
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4210606424410061969}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 782808433606758938}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1085849272306452399
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4210606424410061969}
m_CullTransparentMesh: 1
--- !u!114 &7205159236927224312
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4210606424410061969}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6889607079215043674 --- !u!1 &6889607079215043674
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -297,7 +447,9 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children:
- {fileID: 6243070150297500116}
- {fileID: 379352358508670316}
m_Father: {fileID: 423109112585897887} m_Father: {fileID: 423109112585897887}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
@ -355,7 +507,7 @@ GameObject:
- component: {fileID: 4515818582551300206} - component: {fileID: 4515818582551300206}
- component: {fileID: 5750108967662755581} - component: {fileID: 5750108967662755581}
- component: {fileID: 6941609111617388457} - component: {fileID: 6941609111617388457}
- component: {fileID: 619118269883992892} - component: {fileID: 7980988615992817018}
m_Layer: 5 m_Layer: 5
m_Name: GiboScrollItem m_Name: GiboScrollItem
m_TagString: Untagged m_TagString: Untagged
@ -467,9 +619,9 @@ MonoBehaviour:
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 619118269883992892} - m_Target: {fileID: 7980988615992817018}
m_TargetAssemblyTypeName: GiboItemController, Assembly-CSharp m_TargetAssemblyTypeName: ReplayCell, Assembly-CSharp
m_MethodName: OnClickGiboItem m_MethodName: OnClickReplayButton
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
@ -479,7 +631,7 @@ MonoBehaviour:
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
--- !u!114 &619118269883992892 --- !u!114 &7980988615992817018
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -488,9 +640,10 @@ MonoBehaviour:
m_GameObject: {fileID: 7605012172595602668} m_GameObject: {fileID: 7605012172595602668}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 446a80ba82242004eb31339c44f8ac3b, type: 3} m_Script: {fileID: 11500000, guid: caf41582c1233374abe9b362322de638, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
profileSprites: winImage: {fileID: 5279064539717668063}
- {fileID: 21300000, guid: edeacd6d8f6ab0d42bbdf4ada3c61a27, type: 3} loseImage: {fileID: 7205159236927224312}
- {fileID: 21300000, guid: 2f801858eeb5f4540a432b60aca3d57a, type: 3} playerNicknameText: {fileID: 1459786160726782322}
recordDateText: {fileID: 857776554898951878}

View File

@ -601,7 +601,7 @@ GameObject:
- component: {fileID: 7107302514257622686} - component: {fileID: 7107302514257622686}
- component: {fileID: 5230863580921726021} - component: {fileID: 5230863580921726021}
m_Layer: 5 m_Layer: 5
m_Name: ReplayCell m_Name: ReplayCellLIN
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0

View File

@ -302,7 +302,7 @@ GameObject:
- component: {fileID: 5559365133802195336} - component: {fileID: 5559365133802195336}
- component: {fileID: 5893210151593350084} - component: {fileID: 5893210151593350084}
m_Layer: 5 m_Layer: 5
m_Name: ReplayPanel m_Name: ReplayPanelLIN
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0

View File

@ -150,6 +150,10 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: OnclickRecordButton value: OnclickRecordButton
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1316706425349991338, guid: 6f42a47846f21b044b1cda32a9516609, type: 3}
propertyPath: replayPanel
value:
objectReference: {fileID: 3090474328172188941, guid: c63914e01332f8d479ada92325335e41, type: 3}
- target: {fileID: 4282069284025755619, guid: 6f42a47846f21b044b1cda32a9516609, type: 3} - target: {fileID: 4282069284025755619, guid: 6f42a47846f21b044b1cda32a9516609, type: 3}
propertyPath: m_SizeDelta.x propertyPath: m_SizeDelta.x
value: 0 value: 0
@ -622,6 +626,51 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1464921194
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1464921196}
- component: {fileID: 1464921195}
m_Layer: 0
m_Name: StoneController
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1464921195
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1464921194}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8f82a74d5e1f8de44af5f574b2934a95, type: 3}
m_Name:
m_EditorClassIdentifier:
stones: []
--- !u!4 &1464921196
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1464921194}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 540, y: 960, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807 --- !u!1660057539 &9223372036854775807
SceneRoots: SceneRoots:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -630,3 +679,4 @@ SceneRoots:
- {fileID: 1017982171} - {fileID: 1017982171}
- {fileID: 759297939} - {fileID: 759297939}
- {fileID: 1231053601} - {fileID: 1231053601}
- {fileID: 1464921196}

View File

@ -33,6 +33,7 @@ public class GameManagerTestLIN : Singleton<GameManagerTestLIN>
private void Start() private void Start()
{ {
Debug.Log(UserManager.Instance.Nickname);
//TODO: 기보 타입으로 들어왔을 때 데이터 로드 테스트 수정할것 //TODO: 기보 타입으로 들어왔을 때 데이터 로드 테스트 수정할것
ReplayManager.Instance.InitReplayBoard(ReplayManager.Instance.LoadReplayDatas()[9]); ReplayManager.Instance.InitReplayBoard(ReplayManager.Instance.LoadReplayDatas()[9]);

View File

@ -61,7 +61,8 @@ public class GameManager : Singleton<GameManager>
UpdateMainPanelUI(OpenMainPanel); UpdateMainPanelUI(OpenMainPanel);
// ScoreData.SetScore(userInfo.score); // ScoreData.SetScore(userInfo.score);
// OpenConfirmPanel(userInfo.nickname + "님 로그인 성공하였습니다.", () => { }); OpenConfirmPanel(userInfo.nickname + "님 로그인 성공하였습니다.", () => { });
Debug.Log(userInfo.nickname);
}, () => }, () =>
{ {
Debug.Log("자동 로그인 실패"); Debug.Log("자동 로그인 실패");
@ -181,7 +182,7 @@ public class GameManager : Singleton<GameManager>
if (_canvas != null) if (_canvas != null)
{ {
var settingsPanelObject = Instantiate(giboPanel, _canvas.transform); var settingsPanelObject = Instantiate(giboPanel, _canvas.transform);
settingsPanelObject.GetComponent<GiboPanelController>().Show(giboItems); settingsPanelObject.GetComponent<GiboPanelController>().Show();
} }
} }
} }

View File

@ -45,7 +45,16 @@ public class ReplayCell : MonoBehaviour
public void SetRecordDate(string date) public void SetRecordDate(string date)
{ {
recordDateText.text = date; string text = "";
string[] dateSplit = date.Split(' ');
if (dateSplit.Length == 2)
{
text += dateSplit[0].Replace("-", ".");
text += "\n";
text += dateSplit[1].Replace("_", ":");
}
recordDateText.text = text;
} }
public void SetReplayRecord(ReplayRecord record) public void SetReplayRecord(ReplayRecord record)

View File

@ -18,8 +18,7 @@ public class ReplayPanelController : MonoBehaviour
{ {
_backgroundCanvasGroup = GetComponent<CanvasGroup>(); _backgroundCanvasGroup = GetComponent<CanvasGroup>();
//TODO:Test용 닉네임 나중에 삭제하고 PlayerInfo에서 가져올 것 _myNickname = UserManager.Instance.Nickname;
_myNickname = "Gildong";
} }
private void Start() private void Start()

View File

@ -4,14 +4,35 @@ using UnityEngine;
public class GiboPanelController : ScrollPanelController public class GiboPanelController : ScrollPanelController
{ {
public virtual void Show(List<GiboItem> items)
private string _myNickname;
private void Awake()
{ {
for (int i = 0; i < items.Count && i <= MAX_COUNT; i++) //TODO: 로그인 기능 연동 후 닉네임 바꾸기
_myNickname = "Test1";
List<ReplayRecord> records = new List<ReplayRecord>();
// ReplayManager에서 가져온 기보 데이터들을 패널 셀에 초기화
records = ReplayManager.Instance.LoadReplayDatas();
foreach (var replayRecord in records)
{ {
var scrollItem= Instantiate(scrollItemPrefab, content.transform); var replayCellButtonObject = Instantiate(scrollItemPrefab, content.transform);
scrollItem.GetComponent<GiboItemController>().Init(items[i]); 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 virtual void Show()
{
Debug.Log("GiboPanelController.Show");
base.Show(); base.Show();
} }
} }

View File

@ -24,6 +24,11 @@ public class PanelController : MonoBehaviour
/// </summary> /// </summary>
public void Show() public void Show()
{ {
if (backGroundCanvasGroup == null)
{
backGroundCanvasGroup = GetComponent<CanvasGroup>();
}
backGroundCanvasGroup.alpha = 0; backGroundCanvasGroup.alpha = 0;
panelRectTransform.localScale = Vector3.zero; panelRectTransform.localScale = Vector3.zero;

View File

@ -55,12 +55,12 @@ public class TestPanelController : MonoBehaviour
} }
} }
public void OpenGiboPanel(List<GiboItem> giboItems) public void OpenGiboPanel()
{ {
if (_canvas != null) if (_canvas != null)
{ {
var settingsPanelObject = Instantiate(giboPanel, _canvas.transform); var settingsPanelObject = Instantiate(giboPanel, _canvas.transform);
settingsPanelObject.GetComponent<GiboPanelController>().Show(giboItems); settingsPanelObject.GetComponent<GiboPanelController>().Show();
} }
} }
@ -123,21 +123,8 @@ public class TestPanelController : MonoBehaviour
//기보 패널 생성 //기보 패널 생성
public void OnGiboPanelClick() public void OnGiboPanelClick()
{ {
List<GiboItem> giboItems = new List<GiboItem>(); //테스트 데이터 리스트 생성 OpenGiboPanel();
for (int i = 0; i < 30; i++)
{
GiboItem giboItem = new GiboItem
{
WinLoseSpriteIndex = Random.Range(0, 2),
Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
Name = i.ToString(),
};
giboItems.Add(giboItem);
}
OpenGiboPanel(giboItems);
} }