diff --git a/Assets/01_Scenes/MyProject/GameScene.unity b/Assets/01_Scenes/MyProject/GameScene.unity index 6790fa84..c66f8a13 100644 --- a/Assets/01_Scenes/MyProject/GameScene.unity +++ b/Assets/01_Scenes/MyProject/GameScene.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd750a358ed1e46e0fd1ec31d05ac0d80656cad3098f795797357185a26acef7 -size 13277231 +oid sha256:6c2cab76a174a9123b70022efcfcd5aa6949fb64016b2c66478baf6c53e7053c +size 13296831 diff --git a/Assets/02_Scripts/Managers/Local/GameScene/GameSceneUIManager.cs b/Assets/02_Scripts/Managers/Local/GameScene/GameSceneUIManager.cs index 406e6d1a..4cb12e85 100644 --- a/Assets/02_Scripts/Managers/Local/GameScene/GameSceneUIManager.cs +++ b/Assets/02_Scripts/Managers/Local/GameScene/GameSceneUIManager.cs @@ -1,11 +1,19 @@ +using System.Collections.Generic; using UnityEngine; public class GameSceneUIManager : MonoBehaviour { [SerializeField] private ClearPanel _clearPanel; + [SerializeField] private MissingPanel _missingPanel; + public void ShowClearPanel() { _clearPanel.OpenClear(); } + + public void ShowMissingPanel(List missmatchList) + { + _missingPanel.OpenMissMatch(missmatchList); + } } diff --git a/Assets/02_Scripts/Player/PlayerController.cs b/Assets/02_Scripts/Player/PlayerController.cs index e8756fcc..3bed6552 100644 --- a/Assets/02_Scripts/Player/PlayerController.cs +++ b/Assets/02_Scripts/Player/PlayerController.cs @@ -59,7 +59,7 @@ public void Checkout(CheckoutMachine checkoutMachine) { var parts = new List(missing.Count); foreach (var (group, shortage) in missing) parts.Add($"{group} x{shortage}"); - Debug.Log($"장보기 목록 미충족 — 부족: {string.Join(", ", parts)}"); + GameManager.Instance.GameSceneUI.ShowMissingPanel(parts); } } else diff --git a/Assets/02_Scripts/UI/MissingPanel.cs b/Assets/02_Scripts/UI/MissingPanel.cs new file mode 100644 index 00000000..791ae3ae --- /dev/null +++ b/Assets/02_Scripts/UI/MissingPanel.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using System.Text; +using TMPro; +using UnityEngine; + +public class MissingPanel : MonoBehaviour +{ + [SerializeField] private GameObject _root; + [SerializeField] private TMP_Text _missmatchText; + + public void OpenMissMatch(List missmatchList) + { + _root.SetActive(true); + + StringBuilder sb = new StringBuilder(); //string으로 더하는건 매번 새로 메모리 공간을 할당하므로 비효율적 + + for (int i = 0; i < missmatchList.Count; i++) + { + sb.AppendLine(missmatchList[i]); + + // 마지막 요소가 아닐 때만 줄바꿈 추가 + if (i < missmatchList.Count - 1) + { + sb.Append("\n"); + } + + } + + _missmatchText.text = sb.ToString(); + } + + public void CloseMissMatch() + { + _missmatchText.text = ""; + _root.SetActive(false); + } +} diff --git a/Assets/02_Scripts/UI/MissingPanel.cs.meta b/Assets/02_Scripts/UI/MissingPanel.cs.meta new file mode 100644 index 00000000..88a76bd8 --- /dev/null +++ b/Assets/02_Scripts/UI/MissingPanel.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a132d7e96c1d719419d8ea88dba2d8c7 \ No newline at end of file diff --git a/Assets/04_Textures/Brush_Background.png b/Assets/04_Textures/Brush_Background.png new file mode 100644 index 00000000..b98319b9 --- /dev/null +++ b/Assets/04_Textures/Brush_Background.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6f1a83ea6ce911319856a7e65cb15b784f71489641b7f61b12bc936bf46b494 +size 92042 diff --git a/Assets/04_Textures/Brush_Background.png.meta b/Assets/04_Textures/Brush_Background.png.meta new file mode 100644 index 00000000..2e8f81a4 --- /dev/null +++ b/Assets/04_Textures/Brush_Background.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 642573efe0d007149b76754d46c9f372 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index ef486aac..5f594fa8 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:76138e4e230f1d833385f223c660db2f811a49135dc4b8879b243ede45943d08 -size 10103 +oid sha256:f7b4029d5d23504b7f10c19b810a3dda217d289e026ba95c215b701d42c6dc93 +size 550476