DO-32 [FEAT] 코인 서버 연동 및 로그인, 회원가입 로직 수정
This commit is contained in:
parent
be28571025
commit
565ffe1e5a
@ -122,6 +122,55 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &271965288
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 271965289}
|
||||
- component: {fileID: 271965290}
|
||||
m_Layer: 0
|
||||
m_Name: GameManager
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &271965289
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 271965288}
|
||||
serializedVersion: 2
|
||||
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: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &271965290
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 271965288}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 35a4c6d5d3a97b444b968e68ec8bb9f7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
mainPanel: {fileID: 8564394481744056992, guid: e1835a90a4d722a4b99be61179de8789, type: 3}
|
||||
signinPanel: {fileID: 925522282249935710, guid: e14c9b2925f0ddb4192af743e5cc166a, type: 3}
|
||||
signupPanel: {fileID: 3181524094944658765, guid: 8827fe7caa3145e40b1369cc42f8697d, type: 3}
|
||||
canvas: {fileID: 1867732346}
|
||||
profileSprites: []
|
||||
--- !u!1 &333752980
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -214,8 +263,180 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &740636828
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 740636831}
|
||||
- component: {fileID: 740636830}
|
||||
- component: {fileID: 740636829}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &740636829
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 740636828}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_SendPointerHoverToParent: 1
|
||||
m_HorizontalAxis: Horizontal
|
||||
m_VerticalAxis: Vertical
|
||||
m_SubmitButton: Submit
|
||||
m_CancelButton: Cancel
|
||||
m_InputActionsPerSecond: 10
|
||||
m_RepeatDelay: 0.5
|
||||
m_ForceModuleActive: 0
|
||||
--- !u!114 &740636830
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 740636828}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 10
|
||||
--- !u!4 &740636831
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 740636828}
|
||||
serializedVersion: 2
|
||||
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: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1867732343
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1867732347}
|
||||
- component: {fileID: 1867732346}
|
||||
- component: {fileID: 1867732345}
|
||||
- component: {fileID: 1867732344}
|
||||
m_Layer: 5
|
||||
m_Name: Canvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1867732344
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1867732343}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &1867732345
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1867732343}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 0
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!223 &1867732346
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1867732343}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_VertexColorAlwaysGammaSpace: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!224 &1867732347
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1867732343}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 333752983}
|
||||
- {fileID: 271965289}
|
||||
- {fileID: 1867732347}
|
||||
- {fileID: 740636831}
|
||||
|
@ -1404,7 +1404,7 @@ GameObject:
|
||||
- component: {fileID: 2069651035330330026}
|
||||
- component: {fileID: 2769129427375959542}
|
||||
m_Layer: 5
|
||||
m_Name: Profile Image
|
||||
m_Name: Profile Image_dragon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@ -1722,6 +1722,81 @@ MonoBehaviour:
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &6837262359343561592
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8172929902404983356}
|
||||
- component: {fileID: 9151821260105146833}
|
||||
- component: {fileID: 662347117161959313}
|
||||
m_Layer: 5
|
||||
m_Name: Profile Image_tiger
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8172929902404983356
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6837262359343561592}
|
||||
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: 6110152713294678410}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -180}
|
||||
m_SizeDelta: {x: 403, y: 409}
|
||||
m_Pivot: {x: 0.5, y: 1}
|
||||
--- !u!222 &9151821260105146833
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6837262359343561592}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &662347117161959313
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6837262359343561592}
|
||||
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: 1, 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: 21300000, guid: 59492a1d9c2719641bd0d4d53988c9b4, type: 3}
|
||||
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 &8564394481744056992
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -1756,6 +1831,7 @@ RectTransform:
|
||||
- {fileID: 1983801467959214643}
|
||||
- {fileID: 2720476515686469179}
|
||||
- {fileID: 405965270916774547}
|
||||
- {fileID: 8172929902404983356}
|
||||
- {fileID: 6726863397751661662}
|
||||
- {fileID: 7295287573366824212}
|
||||
m_Father: {fileID: 0}
|
||||
@ -1818,6 +1894,9 @@ MonoBehaviour:
|
||||
nicknameText: {fileID: 6229663128658405980}
|
||||
ratingText: {fileID: 5975803210787517482}
|
||||
signOutButton: {fileID: 1336680714261373895}
|
||||
profileImages:
|
||||
- {fileID: 4381601883819518242}
|
||||
- {fileID: 6837262359343561592}
|
||||
--- !u!1 &9186617826613474881
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -1937,19 +2016,7 @@ MonoBehaviour:
|
||||
m_TargetGraphic: {fileID: 4776591815315724498}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 7488082087611091670}
|
||||
m_TargetAssemblyTypeName: MainPanelController, Assembly-CSharp
|
||||
m_MethodName: OnSignOutClick
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_Calls: []
|
||||
--- !u!1001 &218636292198555703
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -34,9 +34,6 @@ public class CoinsPanelController : MonoBehaviour
|
||||
private void Start()
|
||||
{
|
||||
coinsRemoveImageObject.SetActive(false);
|
||||
|
||||
// TODO : 코인 수량 초기화
|
||||
InitCoinsCount(500);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -47,6 +44,8 @@ public class CoinsPanelController : MonoBehaviour
|
||||
{
|
||||
_coinsCount = coinsCount;
|
||||
coinsCountText.text = _coinsCount.ToString();
|
||||
|
||||
Debug.Log("coinsCount?: " + coinsCount);
|
||||
|
||||
ResizingCoinsRect();
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using System.Collections;
|
||||
@ -8,9 +9,9 @@ public class GameManager : Singleton<GameManager>
|
||||
[SerializeField] private GameObject mainPanel;
|
||||
[SerializeField] private GameObject signinPanel;
|
||||
[SerializeField] private GameObject signupPanel;
|
||||
|
||||
[SerializeField] private Canvas canvas;
|
||||
private UserManager _userManager; // UserManager 인스턴스 관리
|
||||
private CoinsPanelController _coinsPanel;
|
||||
|
||||
private Enums.GameType _gameType;
|
||||
private GameLogic _gameLogic;
|
||||
@ -39,9 +40,6 @@ public class GameManager : Singleton<GameManager>
|
||||
// 자동 로그인
|
||||
TryAutoSignin();
|
||||
|
||||
// 메인 패널 열기
|
||||
OpenMainPanel();
|
||||
|
||||
//게임 씬에서 확인하기 위한 임시 코드
|
||||
// _stoneController = GameObject.FindObjectOfType<StoneController>();
|
||||
// _stoneController.InitStones();
|
||||
@ -53,11 +51,12 @@ public class GameManager : Singleton<GameManager>
|
||||
NetworkManager.Instance.GetInfo((userInfo) =>
|
||||
{
|
||||
Debug.Log("자동 로그인 성공");
|
||||
|
||||
UpdateMainPanelUI();
|
||||
|
||||
UserManager.Instance.SetUserInfo(userInfo);
|
||||
|
||||
UpdateMainPanelUI(OpenMainPanel);
|
||||
// ScoreData.SetScore(userInfo.score);
|
||||
// OpenConfirmPanel(userInfo.nickname + "님 로그인 성공하였습니다.", () => { });
|
||||
|
||||
}, () =>
|
||||
{
|
||||
Debug.Log("자동 로그인 실패");
|
||||
@ -67,9 +66,9 @@ public class GameManager : Singleton<GameManager>
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 유저 별명, 급수, 코인을 서버에서 가져온 정보로 업데이트하여 메인화면에 표시
|
||||
/// 유저 별명, 급수를 서버에서 가져온 정보로 업데이트하여 메인화면에 표시
|
||||
/// </summary>
|
||||
private void UpdateMainPanelUI()
|
||||
public void UpdateMainPanelUI(Action success = null)
|
||||
{
|
||||
MainPanelController mainPanelController = mainPanel.GetComponent<MainPanelController>();
|
||||
|
||||
@ -77,12 +76,7 @@ public class GameManager : Singleton<GameManager>
|
||||
|
||||
mainPanelController.UpdateUserInfo();
|
||||
|
||||
CoinsPanelController coinsPanel = FindObjectOfType<CoinsPanelController>();
|
||||
if (coinsPanel != null)
|
||||
{
|
||||
Debug.Log("코인패널존재?" + UserManager.Instance.Coins);
|
||||
coinsPanel.InitCoinsCount(UserManager.Instance.Coins);
|
||||
}
|
||||
success?.Invoke();
|
||||
}
|
||||
|
||||
public void OpenMainPanel()
|
||||
@ -90,6 +84,16 @@ public class GameManager : Singleton<GameManager>
|
||||
if (canvas != null)
|
||||
{
|
||||
var mainPanelObject = Instantiate(mainPanel, canvas.transform);
|
||||
|
||||
// 메인 화면 아래의 코인 패널에 서버에서 가져 온 코인 값 업데이트
|
||||
_coinsPanel = mainPanelObject.GetComponentInChildren<CoinsPanelController>();
|
||||
|
||||
if (_coinsPanel != null)
|
||||
{
|
||||
Debug.Log("UserManager.Instance.Coins?: " + UserManager.Instance.Coins);
|
||||
_coinsPanel.InitCoinsCount(UserManager.Instance.Coins);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class MainPanelController : MonoBehaviour
|
||||
@ -8,6 +9,18 @@ public class MainPanelController : MonoBehaviour
|
||||
[SerializeField] private TextMeshProUGUI nicknameText;
|
||||
[SerializeField] private TextMeshProUGUI ratingText;
|
||||
[SerializeField] private Button signOutButton;
|
||||
[SerializeField] private GameObject[] profileImages;
|
||||
|
||||
private int _selectedImageIndex;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
// 만약 할당 안되어있으면 추가
|
||||
if (signOutButton != null)
|
||||
{
|
||||
signOutButton.onClick.AddListener(OnSignOutClick);
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateUserInfo()
|
||||
{
|
||||
@ -15,6 +28,22 @@ public class MainPanelController : MonoBehaviour
|
||||
|
||||
nicknameText.text = UserManager.Instance.Nickname;
|
||||
ratingText.text = $"{UserManager.Instance.Rating}급";
|
||||
|
||||
// 프로필 이미지 갱신
|
||||
_selectedImageIndex = UserManager.Instance.imageIndex;
|
||||
Debug.Log("UserManager.Instance.ImageIndex" + UserManager.Instance.imageIndex);
|
||||
if (_selectedImageIndex < 0 || _selectedImageIndex >= profileImages.Length)
|
||||
{
|
||||
Debug.LogError($"Invalid ImageIndex: {_selectedImageIndex}, profileImages length: {profileImages.Length}");
|
||||
return;
|
||||
}
|
||||
|
||||
// 모든 프로필 이미지 비활성화 후, 선택한 이미지만 활성화
|
||||
foreach (var img in profileImages)
|
||||
{
|
||||
img.SetActive(false);
|
||||
}
|
||||
profileImages[_selectedImageIndex].SetActive(true);
|
||||
}
|
||||
|
||||
public void OnSignOutClick()
|
||||
@ -22,13 +51,20 @@ public class MainPanelController : MonoBehaviour
|
||||
NetworkManager.Instance.SignOut(() =>
|
||||
{
|
||||
Debug.Log("로그아웃 성공");
|
||||
|
||||
// 로그인 화면
|
||||
|
||||
GameManager.Instance.OpenSigninPanel();
|
||||
|
||||
// 로그아웃 버튼 메서드 삭제
|
||||
signOutButton.onClick.RemoveAllListeners();
|
||||
|
||||
// 아직 메인 패널이 살아있다면 삭제
|
||||
if (gameObject != null)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}, () =>
|
||||
{
|
||||
Debug.Log("로그아웃 실패");
|
||||
// OpenConfirmPanel("로그아웃 되었습니다.", () => { });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,11 @@ public class NetworkManager : Singleton<NetworkManager>
|
||||
|
||||
}
|
||||
|
||||
public IEnumerator Signup(SignupData signupData, Action success, Action failure)
|
||||
public void Signup(SignupData signupData, Action success, Action failure)
|
||||
{
|
||||
StartCoroutine(SignupCoroutine(signupData, success, failure));
|
||||
}
|
||||
public IEnumerator SignupCoroutine(SignupData signupData, Action success, Action failure)
|
||||
{
|
||||
string jsonString = JsonUtility.ToJson(signupData);
|
||||
Debug.Log("jsonString" + jsonString);
|
||||
@ -58,7 +62,12 @@ public class NetworkManager : Singleton<NetworkManager>
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator Signin(SigninData signinData, Action success, Action<int> failure)
|
||||
public void Signin(SigninData signinData, Action<SigninResult> success, Action<int> failure)
|
||||
{
|
||||
StartCoroutine(SigninCoroutine(signinData, success, failure));
|
||||
}
|
||||
|
||||
public IEnumerator SigninCoroutine(SigninData signinData, Action<SigninResult> success, Action<int> failure)
|
||||
{
|
||||
string jsonString = JsonUtility.ToJson(signinData);
|
||||
byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonString);
|
||||
@ -87,10 +96,10 @@ public class NetworkManager : Singleton<NetworkManager>
|
||||
PlayerPrefs.SetString("sid", sid);
|
||||
}
|
||||
|
||||
var resultString = www.downloadHandler.text;
|
||||
var result = JsonUtility.FromJson<SigninResult>(resultString);
|
||||
var result = www.downloadHandler.text;
|
||||
var signinResult = JsonUtility.FromJson<SigninResult>(result);
|
||||
|
||||
if (result.result == 0)
|
||||
if (signinResult.result == 0)
|
||||
{
|
||||
Debug.Log("유저네임이 유효하지 않습니다.");
|
||||
failure?.Invoke(0);
|
||||
@ -100,7 +109,7 @@ public class NetworkManager : Singleton<NetworkManager>
|
||||
// failure?.Invoke(0);
|
||||
// });
|
||||
}
|
||||
else if (result.result == 1)
|
||||
else if (signinResult.result == 1)
|
||||
{
|
||||
Debug.Log("패스워드가 유효하지 않습니다.");
|
||||
failure?.Invoke(1);
|
||||
@ -110,10 +119,13 @@ public class NetworkManager : Singleton<NetworkManager>
|
||||
// failure?.Invoke(1);
|
||||
// });
|
||||
}
|
||||
else if (result.result == 2)
|
||||
else if (signinResult.result == 2)
|
||||
{
|
||||
Debug.Log("로그인에 성공하였습니다.");
|
||||
success?.Invoke();
|
||||
success?.Invoke(signinResult);
|
||||
Debug.Log("서버 응답 JSON: " + result); // 서버 응답 확인
|
||||
Debug.Log("파싱 후 SigninResult: " + JsonUtility.ToJson(signinResult)); // JSON 파싱 확인
|
||||
Debug.Log("SetUserInfo 호출됨. imageIndex: " + signinResult.imageIndex); // UserManager에 값이 전달되는지 확인
|
||||
// TODO: 성공 팝업 표시
|
||||
// GameManager.Instance.OpenConfirmPanel("로그인에 성공하였습니다.", () =>
|
||||
// {
|
||||
@ -163,7 +175,6 @@ public class NetworkManager : Singleton<NetworkManager>
|
||||
{
|
||||
var result = www.downloadHandler.text;
|
||||
var userInfo = JsonUtility.FromJson<UserInfoResult>(result);
|
||||
UserManager.Instance.SetUserInfo(userInfo);
|
||||
|
||||
success?.Invoke(userInfo);
|
||||
}
|
||||
@ -205,11 +216,11 @@ public class NetworkManager : Singleton<NetworkManager>
|
||||
else
|
||||
{
|
||||
var result = www.downloadHandler.text;
|
||||
Debug.Log("로그아웃 실행결과" + result);
|
||||
// 로그아웃 후 sid를 삭제하여 세션을 클리어
|
||||
PlayerPrefs.SetString("sid", "");
|
||||
// 유저 정보도 삭제
|
||||
PlayerPrefs.SetString("UserInfo", "");
|
||||
UserManager.Instance.UserInfoInit();
|
||||
|
||||
success?.Invoke();
|
||||
}
|
||||
|
@ -12,11 +12,11 @@ public struct SigninData
|
||||
public struct SigninResult
|
||||
{
|
||||
public int result;
|
||||
}
|
||||
|
||||
public struct SignoutResult
|
||||
{
|
||||
public string result;
|
||||
public string nickname;
|
||||
public int imageIndex;
|
||||
public int rating;
|
||||
public int score;
|
||||
public int coins;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
@ -45,17 +45,21 @@ public class SigninPanelController : MonoBehaviour
|
||||
|
||||
if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password))
|
||||
{
|
||||
// TODO: 누락된 값 입렵 요청 팝업 표시
|
||||
// TODO: 누락된 값 입력 요청 팝업 표시
|
||||
return;
|
||||
}
|
||||
|
||||
var signinData = new SigninData();
|
||||
signinData.email = email;
|
||||
signinData.password = password;
|
||||
var signinData = new SigninData { email = email, password = password };
|
||||
|
||||
StartCoroutine(NetworkManager.Instance.Signin(signinData, () =>
|
||||
NetworkManager.Instance.Signin(signinData, (signinResult) =>
|
||||
{
|
||||
Destroy(gameObject);
|
||||
|
||||
// 유저 정보 저장
|
||||
UserManager.Instance.SetUserInfo(signinResult);
|
||||
|
||||
// 메인 패널 정보 갱신
|
||||
GameManager.Instance.UpdateMainPanelUI(GameManager.Instance.OpenMainPanel);
|
||||
}, result =>
|
||||
{
|
||||
if (result == 0)
|
||||
@ -66,7 +70,7 @@ public class SigninPanelController : MonoBehaviour
|
||||
{
|
||||
passwordInputField.text = "";
|
||||
}
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
public void OnClickSignupButton()
|
||||
|
@ -80,7 +80,7 @@ public class SignupPanelController : MonoBehaviour
|
||||
signupData.imageIndex = _selectedImageIndex;
|
||||
|
||||
// 서버로 SignupData 전달하면서 회원가입 진행
|
||||
StartCoroutine(NetworkManager.Instance.Signup(signupData, () =>
|
||||
NetworkManager.Instance.Signup(signupData, () =>
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}, () =>
|
||||
@ -89,7 +89,7 @@ public class SignupPanelController : MonoBehaviour
|
||||
nicknameInputField.text = "";
|
||||
passwordInputField.text = "";
|
||||
confirmPasswordInputField.text = "";
|
||||
}));
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -27,7 +27,7 @@ public class UserManager : Singleton<UserManager>
|
||||
public string Nickname { get; private set; }
|
||||
public int Rating { get; private set; }
|
||||
public int Score { get; private set; }
|
||||
public int ImageIndex { get; private set; }
|
||||
public int imageIndex { get; private set; }
|
||||
public int Win { get; private set; }
|
||||
public int Lose { get; private set; }
|
||||
public int Coins { get; private set; }
|
||||
@ -36,6 +36,20 @@ public class UserManager : Singleton<UserManager>
|
||||
{
|
||||
}
|
||||
|
||||
public void UserInfoInit()
|
||||
{
|
||||
UserId = "";
|
||||
Email = "";
|
||||
Nickname = "";
|
||||
Rating = 0;
|
||||
imageIndex = 0;
|
||||
Coins = 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// GetInfo 호출 시
|
||||
/// </summary>
|
||||
/// <param name="userData"></param>
|
||||
public void SetUserInfo(UserInfoResult userData)
|
||||
{
|
||||
if (userData == null)
|
||||
@ -49,7 +63,7 @@ public class UserManager : Singleton<UserManager>
|
||||
Nickname = userData.nickname;
|
||||
Rating = userData.rating;
|
||||
// Score = userData.score;
|
||||
ImageIndex = userData.imageIndex;
|
||||
imageIndex = userData.imageIndex;
|
||||
// Win = userData.win;
|
||||
// Lose = userData.lose;
|
||||
Coins = userData.coins;
|
||||
@ -58,6 +72,21 @@ public class UserManager : Singleton<UserManager>
|
||||
SaveUserInfoToPlayerPrefs();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Signin 호출 시 : 로그인 정보만 반영
|
||||
/// </summary>
|
||||
/// <param name="signinResult"></param>
|
||||
public void SetUserInfo(SigninResult signinResult)
|
||||
{
|
||||
Nickname = signinResult.nickname;
|
||||
Rating = signinResult.rating;
|
||||
// Score = signinResult.score;
|
||||
imageIndex = signinResult.imageIndex;
|
||||
Coins = signinResult.coins;
|
||||
Debug.Log("머임??: " + imageIndex);
|
||||
}
|
||||
|
||||
public void SaveUserInfoToPlayerPrefs()
|
||||
{
|
||||
// UserInfoResult 객체를 JSON 문자열로 직렬화
|
||||
@ -68,7 +97,7 @@ public class UserManager : Singleton<UserManager>
|
||||
nickname = Nickname,
|
||||
// rating = Rating,
|
||||
// score = Score,
|
||||
imageIndex = ImageIndex,
|
||||
imageIndex = imageIndex,
|
||||
// win = Win,
|
||||
// lose = Lose
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user