From be28571025c8810ca3c18ccb2e70f892f8b95343 Mon Sep 17 00:00:00 2001 From: Jay <96156114+jaydev00a@users.noreply.github.com> Date: Fri, 14 Mar 2025 16:40:28 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[Feat]=20=EC=BD=94=EC=9D=B8=20=EC=84=9C?= =?UTF-8?q?=EB=B2=84=20=EC=97=B0=EB=8F=99=20=EC=B6=94=EA=B0=80=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/JAY.meta | 8 + Assets/JAY/Main-Jay.unity | 221 +++++++++++++++++++++++++++ Assets/JAY/Main-Jay.unity.meta | 7 + Assets/Script/Game/GameManager.cs | 37 ++++- Assets/Script/Main/NetworkManager.cs | 48 ++++++ Assets/Script/Main/UserManager.cs | 20 ++- 6 files changed, 334 insertions(+), 7 deletions(-) create mode 100644 Assets/JAY.meta create mode 100644 Assets/JAY/Main-Jay.unity create mode 100644 Assets/JAY/Main-Jay.unity.meta diff --git a/Assets/JAY.meta b/Assets/JAY.meta new file mode 100644 index 0000000..3ed0750 --- /dev/null +++ b/Assets/JAY.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1a1e8e30f7d4a53499404409beda5805 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JAY/Main-Jay.unity b/Assets/JAY/Main-Jay.unity new file mode 100644 index 0000000..e326e6e --- /dev/null +++ b/Assets/JAY/Main-Jay.unity @@ -0,0 +1,221 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333752980 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333752983} + - component: {fileID: 333752982} + - component: {fileID: 333752981} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &333752981 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333752980} + m_Enabled: 1 +--- !u!20 &333752982 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333752980} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &333752983 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333752980} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + 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 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 333752983} diff --git a/Assets/JAY/Main-Jay.unity.meta b/Assets/JAY/Main-Jay.unity.meta new file mode 100644 index 0000000..aa4891b --- /dev/null +++ b/Assets/JAY/Main-Jay.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aa6a3e598ecaa6e4aa2ad0f1d81bea93 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/Game/GameManager.cs b/Assets/Script/Game/GameManager.cs index fd0a3f9..241b5c0 100644 --- a/Assets/Script/Game/GameManager.cs +++ b/Assets/Script/Game/GameManager.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; public class GameManager : Singleton { + [SerializeField] private GameObject mainPanel; [SerializeField] private GameObject signinPanel; [SerializeField] private GameObject signupPanel; @@ -33,13 +34,18 @@ public class GameManager : Singleton private void Start() { + // TODO: 로딩 화면 추가(자동 로그인 응답 전까지) + // 자동 로그인 TryAutoSignin(); + // 메인 패널 열기 + OpenMainPanel(); + //게임 씬에서 확인하기 위한 임시 코드 - _stoneController = GameObject.FindObjectOfType(); - _stoneController.InitStones(); - _gameLogic = new GameLogic(_stoneController, _gameType); + // _stoneController = GameObject.FindObjectOfType(); + // _stoneController.InitStones(); + // _gameLogic = new GameLogic(_stoneController, _gameType); } private void TryAutoSignin() @@ -49,6 +55,7 @@ public class GameManager : Singleton Debug.Log("자동 로그인 성공"); UpdateMainPanelUI(); + // ScoreData.SetScore(userInfo.score); // OpenConfirmPanel(userInfo.nickname + "님 로그인 성공하였습니다.", () => { }); }, () => @@ -59,12 +66,30 @@ public class GameManager : Singleton }); } + /// + /// 유저 별명, 급수, 코인을 서버에서 가져온 정보로 업데이트하여 메인화면에 표시 + /// private void UpdateMainPanelUI() { - MainPanelController mainPanel = FindObjectOfType(); - if (mainPanel != null) + MainPanelController mainPanelController = mainPanel.GetComponent(); + + if (mainPanelController == null) return; + + mainPanelController.UpdateUserInfo(); + + CoinsPanelController coinsPanel = FindObjectOfType(); + if (coinsPanel != null) { - mainPanel.UpdateUserInfo(); + Debug.Log("코인패널존재?" + UserManager.Instance.Coins); + coinsPanel.InitCoinsCount(UserManager.Instance.Coins); + } + } + + public void OpenMainPanel() + { + if (canvas != null) + { + var mainPanelObject = Instantiate(mainPanel, canvas.transform); } } diff --git a/Assets/Script/Main/NetworkManager.cs b/Assets/Script/Main/NetworkManager.cs index 4b7ce3c..102cfac 100644 --- a/Assets/Script/Main/NetworkManager.cs +++ b/Assets/Script/Main/NetworkManager.cs @@ -208,6 +208,8 @@ public class NetworkManager : Singleton Debug.Log("로그아웃 실행결과" + result); // 로그아웃 후 sid를 삭제하여 세션을 클리어 PlayerPrefs.SetString("sid", ""); + // 유저 정보도 삭제 + PlayerPrefs.SetString("UserInfo", ""); success?.Invoke(); } @@ -248,4 +250,50 @@ public class NetworkManager : Singleton } } } + + + public void GetCoinsInfo(Action success, Action failure) + { + StartCoroutine(GetCoinsInfoCoroutine(success, failure)); + } + + public IEnumerator GetCoinsInfoCoroutine(Action success, Action failure) + { + using (UnityWebRequest www = + new UnityWebRequest(Constants.ServerURL + "/users/coins", UnityWebRequest.kHttpVerbGET)) + { + www.downloadHandler = new DownloadHandlerBuffer(); + string sid = PlayerPrefs.GetString("sid", ""); + if (!string.IsNullOrEmpty(sid)) + { + www.SetRequestHeader("Cookie", sid); + } + else + { + Debug.LogError("SID 값이 없습니다. 로그인 정보가 없습니다."); + failure?.Invoke(); + yield break; // 더 이상 진행하지 않고 종료 + } + + yield return www.SendWebRequest(); + + if (www.result == UnityWebRequest.Result.ConnectionError || + www.result == UnityWebRequest.Result.ProtocolError) + { + if (www.responseCode == 403) + { + Debug.Log("로그인이 필요합니다."); + } + + failure?.Invoke(); + } + else + { + var result = www.downloadHandler.text; + var coinsInfo = JsonUtility.FromJson(result); + + success?.Invoke(coinsInfo); + } + } + } } \ No newline at end of file diff --git a/Assets/Script/Main/UserManager.cs b/Assets/Script/Main/UserManager.cs index 3398ba1..73b0029 100644 --- a/Assets/Script/Main/UserManager.cs +++ b/Assets/Script/Main/UserManager.cs @@ -11,6 +11,13 @@ public class UserInfoResult public int imageIndex; public int win; public int lose; + public int coins; +} + +public class CoinsInfoResult +{ + public string result; + public int coins; } public class UserManager : Singleton @@ -23,6 +30,7 @@ public class UserManager : Singleton public int ImageIndex { get; private set; } public int Win { get; private set; } public int Lose { get; private set; } + public int Coins { get; private set; } protected override void OnSceneLoaded(Scene scene, LoadSceneMode mode) { @@ -44,6 +52,7 @@ public class UserManager : Singleton ImageIndex = userData.imageIndex; // Win = userData.win; // Lose = userData.lose; + Coins = userData.coins; // 유저 정보를 PlayerPrefs에 저장 SaveUserInfoToPlayerPrefs(); @@ -89,5 +98,14 @@ public class UserManager : Singleton SetUserInfo(userInfo); } - + public void SetCoinsInfo() + { + NetworkManager.Instance.GetCoinsInfo((coinsResult) => + { + Coins = coinsResult.coins; + }, () => + { + Debug.Log("서버에서 코인 불러오기 실패"); + }); + } } \ No newline at end of file From 565ffe1e5abf5dc8057f638b357678a9ddca7d80 Mon Sep 17 00:00:00 2001 From: Jay <96156114+jaydev00a@users.noreply.github.com> Date: Fri, 14 Mar 2025 21:58:01 +0900 Subject: [PATCH 2/5] =?UTF-8?q?DO-32=20[FEAT]=20=EC=BD=94=EC=9D=B8=20?= =?UTF-8?q?=EC=84=9C=EB=B2=84=20=EC=97=B0=EB=8F=99=20=EB=B0=8F=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8,=20=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/JAY/Main-Jay.unity | 221 +++++++++++++++++++ Assets/Prefabs/Main Panel.prefab | 95 ++++++-- Assets/Script/Common/CoinsPanelController.cs | 5 +- Assets/Script/Game/GameManager.cs | 34 +-- Assets/Script/Main/MainPanelController.cs | 42 +++- Assets/Script/Main/NetworkManager.cs | 31 ++- Assets/Script/Main/SigninPanelController.cs | 26 ++- Assets/Script/Main/SignupPanelController.cs | 4 +- Assets/Script/Main/UserManager.cs | 35 ++- 9 files changed, 432 insertions(+), 61 deletions(-) diff --git a/Assets/JAY/Main-Jay.unity b/Assets/JAY/Main-Jay.unity index e326e6e..074d9d5 100644 --- a/Assets/JAY/Main-Jay.unity +++ b/Assets/JAY/Main-Jay.unity @@ -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} diff --git a/Assets/Prefabs/Main Panel.prefab b/Assets/Prefabs/Main Panel.prefab index 96f2a80..173d9c3 100644 --- a/Assets/Prefabs/Main Panel.prefab +++ b/Assets/Prefabs/Main Panel.prefab @@ -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 diff --git a/Assets/Script/Common/CoinsPanelController.cs b/Assets/Script/Common/CoinsPanelController.cs index 7084e72..201a776 100644 --- a/Assets/Script/Common/CoinsPanelController.cs +++ b/Assets/Script/Common/CoinsPanelController.cs @@ -34,9 +34,6 @@ public class CoinsPanelController : MonoBehaviour private void Start() { coinsRemoveImageObject.SetActive(false); - - // TODO : 코인 수량 초기화 - InitCoinsCount(500); } /// @@ -47,6 +44,8 @@ public class CoinsPanelController : MonoBehaviour { _coinsCount = coinsCount; coinsCountText.text = _coinsCount.ToString(); + + Debug.Log("coinsCount?: " + coinsCount); ResizingCoinsRect(); } diff --git a/Assets/Script/Game/GameManager.cs b/Assets/Script/Game/GameManager.cs index 241b5c0..5e5817d 100644 --- a/Assets/Script/Game/GameManager.cs +++ b/Assets/Script/Game/GameManager.cs @@ -1,3 +1,4 @@ +using System; using UnityEngine; using UnityEngine.SceneManagement; using System.Collections; @@ -8,9 +9,9 @@ public class GameManager : Singleton [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 // 자동 로그인 TryAutoSignin(); - // 메인 패널 열기 - OpenMainPanel(); - //게임 씬에서 확인하기 위한 임시 코드 // _stoneController = GameObject.FindObjectOfType(); // _stoneController.InitStones(); @@ -53,11 +51,12 @@ public class GameManager : Singleton 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 } /// - /// 유저 별명, 급수, 코인을 서버에서 가져온 정보로 업데이트하여 메인화면에 표시 + /// 유저 별명, 급수를 서버에서 가져온 정보로 업데이트하여 메인화면에 표시 /// - private void UpdateMainPanelUI() + public void UpdateMainPanelUI(Action success = null) { MainPanelController mainPanelController = mainPanel.GetComponent(); @@ -77,12 +76,7 @@ public class GameManager : Singleton mainPanelController.UpdateUserInfo(); - CoinsPanelController coinsPanel = FindObjectOfType(); - 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 if (canvas != null) { var mainPanelObject = Instantiate(mainPanel, canvas.transform); + + // 메인 화면 아래의 코인 패널에 서버에서 가져 온 코인 값 업데이트 + _coinsPanel = mainPanelObject.GetComponentInChildren(); + + if (_coinsPanel != null) + { + Debug.Log("UserManager.Instance.Coins?: " + UserManager.Instance.Coins); + _coinsPanel.InitCoinsCount(UserManager.Instance.Coins); + } + } } diff --git a/Assets/Script/Main/MainPanelController.cs b/Assets/Script/Main/MainPanelController.cs index 4ee980f..bacee6c 100644 --- a/Assets/Script/Main/MainPanelController.cs +++ b/Assets/Script/Main/MainPanelController.cs @@ -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("로그아웃 되었습니다.", () => { }); }); } } diff --git a/Assets/Script/Main/NetworkManager.cs b/Assets/Script/Main/NetworkManager.cs index 102cfac..46a1404 100644 --- a/Assets/Script/Main/NetworkManager.cs +++ b/Assets/Script/Main/NetworkManager.cs @@ -11,7 +11,11 @@ public class NetworkManager : Singleton } - 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 } } - public IEnumerator Signin(SigninData signinData, Action success, Action failure) + public void Signin(SigninData signinData, Action success, Action failure) + { + StartCoroutine(SigninCoroutine(signinData, success, failure)); + } + + public IEnumerator SigninCoroutine(SigninData signinData, Action success, Action failure) { string jsonString = JsonUtility.ToJson(signinData); byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonString); @@ -87,10 +96,10 @@ public class NetworkManager : Singleton PlayerPrefs.SetString("sid", sid); } - var resultString = www.downloadHandler.text; - var result = JsonUtility.FromJson(resultString); + var result = www.downloadHandler.text; + var signinResult = JsonUtility.FromJson(result); - if (result.result == 0) + if (signinResult.result == 0) { Debug.Log("유저네임이 유효하지 않습니다."); failure?.Invoke(0); @@ -100,7 +109,7 @@ public class NetworkManager : Singleton // 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 // 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 { var result = www.downloadHandler.text; var userInfo = JsonUtility.FromJson(result); - UserManager.Instance.SetUserInfo(userInfo); success?.Invoke(userInfo); } @@ -205,11 +216,11 @@ public class NetworkManager : Singleton else { var result = www.downloadHandler.text; - Debug.Log("로그아웃 실행결과" + result); // 로그아웃 후 sid를 삭제하여 세션을 클리어 PlayerPrefs.SetString("sid", ""); // 유저 정보도 삭제 PlayerPrefs.SetString("UserInfo", ""); + UserManager.Instance.UserInfoInit(); success?.Invoke(); } diff --git a/Assets/Script/Main/SigninPanelController.cs b/Assets/Script/Main/SigninPanelController.cs index acc69e0..5fe8e9c 100644 --- a/Assets/Script/Main/SigninPanelController.cs +++ b/Assets/Script/Main/SigninPanelController.cs @@ -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() diff --git a/Assets/Script/Main/SignupPanelController.cs b/Assets/Script/Main/SignupPanelController.cs index b89e3e6..beba6c1 100644 --- a/Assets/Script/Main/SignupPanelController.cs +++ b/Assets/Script/Main/SignupPanelController.cs @@ -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 { diff --git a/Assets/Script/Main/UserManager.cs b/Assets/Script/Main/UserManager.cs index 73b0029..f273834 100644 --- a/Assets/Script/Main/UserManager.cs +++ b/Assets/Script/Main/UserManager.cs @@ -27,7 +27,7 @@ public class UserManager : Singleton 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 { } + public void UserInfoInit() + { + UserId = ""; + Email = ""; + Nickname = ""; + Rating = 0; + imageIndex = 0; + Coins = 0; + } + + /// + /// GetInfo 호출 시 + /// + /// public void SetUserInfo(UserInfoResult userData) { if (userData == null) @@ -49,7 +63,7 @@ public class UserManager : Singleton 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 SaveUserInfoToPlayerPrefs(); } + + /// + /// Signin 호출 시 : 로그인 정보만 반영 + /// + /// + 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 nickname = Nickname, // rating = Rating, // score = Score, - imageIndex = ImageIndex, + imageIndex = imageIndex, // win = Win, // lose = Lose }; From 246e29717950f5dce503c019814d893163966a0b Mon Sep 17 00:00:00 2001 From: Jay <96156114+jaydev00a@users.noreply.github.com> Date: Fri, 14 Mar 2025 22:06:03 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[Style]=20=EC=95=88=EC=93=B0=EB=8A=94=20?= =?UTF-8?q?=EC=A3=BC=EC=84=9D=20=EB=93=B1=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Script/Common/CoinsPanelController.cs | 2 -- Assets/Script/Game/GameManager.cs | 5 +---- Assets/Script/Main/MainPanelController.cs | 2 -- Assets/Script/Main/NetworkManager.cs | 10 +++------- Assets/Script/Main/SignupPanelController.cs | 1 - Assets/Script/Main/UserManager.cs | 1 - 6 files changed, 4 insertions(+), 17 deletions(-) diff --git a/Assets/Script/Common/CoinsPanelController.cs b/Assets/Script/Common/CoinsPanelController.cs index 201a776..19a2c65 100644 --- a/Assets/Script/Common/CoinsPanelController.cs +++ b/Assets/Script/Common/CoinsPanelController.cs @@ -45,8 +45,6 @@ public class CoinsPanelController : MonoBehaviour _coinsCount = coinsCount; coinsCountText.text = _coinsCount.ToString(); - Debug.Log("coinsCount?: " + coinsCount); - ResizingCoinsRect(); } diff --git a/Assets/Script/Game/GameManager.cs b/Assets/Script/Game/GameManager.cs index 5e5817d..f075048 100644 --- a/Assets/Script/Game/GameManager.cs +++ b/Assets/Script/Game/GameManager.cs @@ -16,7 +16,6 @@ public class GameManager : Singleton private Enums.GameType _gameType; private GameLogic _gameLogic; private StoneController _stoneController; - private Canvas _canvas; public Sprite[] profileSprites; //패널에서 사용할 테스트 배열 @@ -29,7 +28,7 @@ public class GameManager : Singleton _userManager = userManagerObj.AddComponent(); //게임 씬에서 확인하기 위한 임시 코드 - _gameType = Enums.GameType.SinglePlay; + // _gameType = Enums.GameType.SinglePlay; } } @@ -90,7 +89,6 @@ public class GameManager : Singleton if (_coinsPanel != null) { - Debug.Log("UserManager.Instance.Coins?: " + UserManager.Instance.Coins); _coinsPanel.InitCoinsCount(UserManager.Instance.Coins); } @@ -132,6 +130,5 @@ public class GameManager : Singleton _stoneController.InitStones(); _gameLogic = new GameLogic(_stoneController, _gameType); } - _canvas = GameObject.Find("Canvas").GetComponent(); } } \ No newline at end of file diff --git a/Assets/Script/Main/MainPanelController.cs b/Assets/Script/Main/MainPanelController.cs index bacee6c..b35234a 100644 --- a/Assets/Script/Main/MainPanelController.cs +++ b/Assets/Script/Main/MainPanelController.cs @@ -31,10 +31,8 @@ public class MainPanelController : MonoBehaviour // 프로필 이미지 갱신 _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; } diff --git a/Assets/Script/Main/NetworkManager.cs b/Assets/Script/Main/NetworkManager.cs index 46a1404..327d0fd 100644 --- a/Assets/Script/Main/NetworkManager.cs +++ b/Assets/Script/Main/NetworkManager.cs @@ -18,7 +18,6 @@ public class NetworkManager : Singleton public IEnumerator SignupCoroutine(SignupData signupData, Action success, Action failure) { string jsonString = JsonUtility.ToJson(signupData); - Debug.Log("jsonString" + jsonString); byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonString); using (UnityWebRequest www = @@ -50,7 +49,6 @@ public class NetworkManager : Singleton else { var result = www.downloadHandler.text; - Debug.Log("Result: " + result); success?.Invoke(); // TODO: 회원가입 성공 팝업 표시 @@ -84,7 +82,7 @@ public class NetworkManager : Singleton if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError) { - + Debug.Log("Error: " + www.error); } else { @@ -101,7 +99,7 @@ public class NetworkManager : Singleton if (signinResult.result == 0) { - Debug.Log("유저네임이 유효하지 않습니다."); + Debug.Log("유저 이메일이 유효하지 않습니다."); failure?.Invoke(0); // TODO: 유저네임 유효하지 않음 팝업 표시 // GameManager.Instance.OpenConfirmPanel("유저네임이 유효하지 않습니다.", () => @@ -123,9 +121,7 @@ public class NetworkManager : Singleton { Debug.Log("로그인에 성공하였습니다."); 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("로그인에 성공하였습니다.", () => // { diff --git a/Assets/Script/Main/SignupPanelController.cs b/Assets/Script/Main/SignupPanelController.cs index beba6c1..c76bb16 100644 --- a/Assets/Script/Main/SignupPanelController.cs +++ b/Assets/Script/Main/SignupPanelController.cs @@ -105,7 +105,6 @@ public class SignupPanelController : MonoBehaviour public void OnClickCancelButton() { - Debug.Log("OnClickCancelButton"); Destroy(gameObject); } } diff --git a/Assets/Script/Main/UserManager.cs b/Assets/Script/Main/UserManager.cs index f273834..066d056 100644 --- a/Assets/Script/Main/UserManager.cs +++ b/Assets/Script/Main/UserManager.cs @@ -84,7 +84,6 @@ public class UserManager : Singleton // Score = signinResult.score; imageIndex = signinResult.imageIndex; Coins = signinResult.coins; - Debug.Log("머임??: " + imageIndex); } public void SaveUserInfoToPlayerPrefs() From 7794b692cad30c8614fbc545ccb7b7dabaea03a2 Mon Sep 17 00:00:00 2001 From: Jay <96156114+jaydev00a@users.noreply.github.com> Date: Fri, 14 Mar 2025 22:24:59 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[Feat]=20=EB=A9=94=EC=9D=B8=20=ED=8C=A8?= =?UTF-8?q?=EB=84=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Prefabs/Main Panel.prefab | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Assets/Prefabs/Main Panel.prefab b/Assets/Prefabs/Main Panel.prefab index 173d9c3..09f2a9d 100644 --- a/Assets/Prefabs/Main Panel.prefab +++ b/Assets/Prefabs/Main Panel.prefab @@ -1068,7 +1068,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: "18\uAE09" + m_text: "16\uAE09" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 85a19688db53c77469fc4406b01045da, type: 2} m_sharedMaterial: {fileID: -2477908578676791210, guid: 85a19688db53c77469fc4406b01045da, type: 2} @@ -1653,7 +1653,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: " \uD64D\uAE38\uB3D9" + m_text: "\uD14C\uC2A4\uD2B801" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 85a19688db53c77469fc4406b01045da, type: 2} m_sharedMaterial: {fileID: -2477908578676791210, guid: 85a19688db53c77469fc4406b01045da, type: 2} @@ -1739,7 +1739,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &8172929902404983356 RectTransform: m_ObjectHideFlags: 0 From 3c920844225e15384d6d57d419ba60cccb8edca4 Mon Sep 17 00:00:00 2001 From: Jay <96156114+jaydev00a@users.noreply.github.com> Date: Mon, 17 Mar 2025 10:17:12 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[Feat]=20=EB=A1=9C=EA=B7=B8=EC=95=84?= =?UTF-8?q?=EC=9B=83=20=EC=A4=91=EB=B3=B5=20=ED=81=B4=EB=A6=AD=20=EB=B0=A9?= =?UTF-8?q?=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Script/Main/MainPanelController.cs | 2 ++ Assets/Script/Main/NetworkManager.cs | 2 -- Assets/Sprites/Panel UI/back_button.png.meta | 13 +++++++++++++ Assets/Sprites/Panel UI/block-bg.png.meta | 13 +++++++++++++ Assets/Sprites/Panel UI/button-bg.png.meta | 13 +++++++++++++ Assets/Sprites/Panel UI/close_button-bg.png.meta | 13 +++++++++++++ Assets/Sprites/Panel UI/panel-bg.png.meta | 13 +++++++++++++ Assets/Sprites/Panel UI/settings_icon.png.meta | 13 +++++++++++++ Assets/Sprites/Panel UI/switch_bg.png.meta | 13 +++++++++++++ Assets/Sprites/Panel UI/switch_handle.png.meta | 13 +++++++++++++ 10 files changed, 106 insertions(+), 2 deletions(-) diff --git a/Assets/Script/Main/MainPanelController.cs b/Assets/Script/Main/MainPanelController.cs index b35234a..6588b33 100644 --- a/Assets/Script/Main/MainPanelController.cs +++ b/Assets/Script/Main/MainPanelController.cs @@ -46,6 +46,7 @@ public class MainPanelController : MonoBehaviour public void OnSignOutClick() { + signOutButton.interactable = false; // 중복 클릭 방지 NetworkManager.Instance.SignOut(() => { Debug.Log("로그아웃 성공"); @@ -63,6 +64,7 @@ public class MainPanelController : MonoBehaviour }, () => { Debug.Log("로그아웃 실패"); + signOutButton.interactable = true; // 실패 시 다시 활성화 }); } } diff --git a/Assets/Script/Main/NetworkManager.cs b/Assets/Script/Main/NetworkManager.cs index 327d0fd..0b52c1a 100644 --- a/Assets/Script/Main/NetworkManager.cs +++ b/Assets/Script/Main/NetworkManager.cs @@ -184,8 +184,6 @@ public class NetworkManager : Singleton public IEnumerator SignOutCoroutine(Action success, Action failure) { - Debug.Log("로그아웃 호출?"); - string sid = PlayerPrefs.GetString("sid", ""); if (string.IsNullOrEmpty(sid)) { diff --git a/Assets/Sprites/Panel UI/back_button.png.meta b/Assets/Sprites/Panel UI/back_button.png.meta index 4e8c85e..c10fbb9 100644 --- a/Assets/Sprites/Panel UI/back_button.png.meta +++ b/Assets/Sprites/Panel UI/back_button.png.meta @@ -106,6 +106,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Sprites/Panel UI/block-bg.png.meta b/Assets/Sprites/Panel UI/block-bg.png.meta index ff1e587..7a44409 100644 --- a/Assets/Sprites/Panel UI/block-bg.png.meta +++ b/Assets/Sprites/Panel UI/block-bg.png.meta @@ -106,6 +106,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Sprites/Panel UI/button-bg.png.meta b/Assets/Sprites/Panel UI/button-bg.png.meta index d83afc4..44614cf 100644 --- a/Assets/Sprites/Panel UI/button-bg.png.meta +++ b/Assets/Sprites/Panel UI/button-bg.png.meta @@ -106,6 +106,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Sprites/Panel UI/close_button-bg.png.meta b/Assets/Sprites/Panel UI/close_button-bg.png.meta index 86d1119..2b9b648 100644 --- a/Assets/Sprites/Panel UI/close_button-bg.png.meta +++ b/Assets/Sprites/Panel UI/close_button-bg.png.meta @@ -106,6 +106,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Sprites/Panel UI/panel-bg.png.meta b/Assets/Sprites/Panel UI/panel-bg.png.meta index d3338bb..22db4db 100644 --- a/Assets/Sprites/Panel UI/panel-bg.png.meta +++ b/Assets/Sprites/Panel UI/panel-bg.png.meta @@ -106,6 +106,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Sprites/Panel UI/settings_icon.png.meta b/Assets/Sprites/Panel UI/settings_icon.png.meta index 4c8a9f0..ceb858e 100644 --- a/Assets/Sprites/Panel UI/settings_icon.png.meta +++ b/Assets/Sprites/Panel UI/settings_icon.png.meta @@ -106,6 +106,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Sprites/Panel UI/switch_bg.png.meta b/Assets/Sprites/Panel UI/switch_bg.png.meta index a0a1b66..3d299fd 100644 --- a/Assets/Sprites/Panel UI/switch_bg.png.meta +++ b/Assets/Sprites/Panel UI/switch_bg.png.meta @@ -106,6 +106,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Sprites/Panel UI/switch_handle.png.meta b/Assets/Sprites/Panel UI/switch_handle.png.meta index 0be524d..d3bcc8f 100644 --- a/Assets/Sprites/Panel UI/switch_handle.png.meta +++ b/Assets/Sprites/Panel UI/switch_handle.png.meta @@ -106,6 +106,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: []