diff --git a/.vscode/settings.json b/.vscode/settings.json index 3e427d4..90d55eb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -60,12 +60,12 @@ "*.asset": "yaml", "*.meta": "yaml", "*.prefab": "yaml", - "*.unity": "yaml", + "*.unity": "yaml" }, "explorer.fileNesting.enabled": true, "explorer.fileNesting.patterns": { "*.sln": "*.csproj", "*.slnx": "*.csproj" }, - "dotnet.defaultSolution": "Unity_2D_WhiteAction.slnx" + "dotnet.defaultSolution": "WhiteMan_Unity2D.slnx" } \ No newline at end of file diff --git a/.vsconfig b/.vsconfig new file mode 100644 index 0000000..f019fd0 --- /dev/null +++ b/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/Assets/01_Scenes/BossScene.unity b/Assets/01_Scenes/BossScene.unity index 63c4e3c..ac6c170 100644 --- a/Assets/01_Scenes/BossScene.unity +++ b/Assets/01_Scenes/BossScene.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:621eb6c2ee1aa1f0664699508dbf4ad49c69c0a3544212a040529f8524144e00 -size 212564 +oid sha256:66a8fa0b12a4dbe181ca4cf54c79e72f4d6964f5f34cfbaa2c135865609320dc +size 212568 diff --git a/Assets/01_Scenes/GameScene.unity b/Assets/01_Scenes/GameScene.unity index 33d03c5..ceb2aa3 100644 --- a/Assets/01_Scenes/GameScene.unity +++ b/Assets/01_Scenes/GameScene.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4936fa60de559c7c0bec4dc9602ff8e5525c773c8cd27af575fe8c6c6188455f -size 182976 +oid sha256:ffe1d306d4bac29bfbff091e54d8540b457c18dbe743a424382a16716d85afeb +size 183396 diff --git a/Assets/01_Scenes/StartScene.unity b/Assets/01_Scenes/StartScene.unity index 4cf7aea..1d0a1d4 100644 --- a/Assets/01_Scenes/StartScene.unity +++ b/Assets/01_Scenes/StartScene.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c6458ae7b67f619741ded5457e5ddfc7134cf35f8530d7d68b1e8437eaa036ba -size 64261 +oid sha256:f1e3b4a5ed5bdcec29fd614599b28b2ce734d175d2f620523f346a544d82ac6f +size 64263 diff --git a/Assets/02_Scripts/Combat/PlayerWeaponInventory.cs b/Assets/02_Scripts/Combat/PlayerWeaponInventory.cs index 077d914..26f0a23 100644 --- a/Assets/02_Scripts/Combat/PlayerWeaponInventory.cs +++ b/Assets/02_Scripts/Combat/PlayerWeaponInventory.cs @@ -119,6 +119,12 @@ public void EquipSlot(int slotIndex) OnInventoryChanged?.Invoke(); } + public void ClearWeaponInven() + { + _weapons.Clear(); + OnInventoryChanged?.Invoke(); + } + // 디버그용: 슬롯에 해당 무기가 있는지 확인. public bool HasWeaponInSlot(int slotIndex) { diff --git a/Assets/02_Scripts/Input/GameInput.cs b/Assets/02_Scripts/Input/GameInput.cs index 91f3b01..1741893 100644 --- a/Assets/02_Scripts/Input/GameInput.cs +++ b/Assets/02_Scripts/Input/GameInput.cs @@ -1,77 +1,9 @@ -//------------------------------------------------------------------------------ -// -// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator -// version 1.18.0 -// from Assets/11_Input/GameInput.inputactions -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - using System; using System.Collections; using System.Collections.Generic; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Utilities; -/// -/// Provides programmatic access to , , and instances defined in asset "Assets/11_Input/GameInput.inputactions". -/// -/// -/// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified. -/// -/// -/// -/// using namespace UnityEngine; -/// using UnityEngine.InputSystem; -/// -/// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface. -/// public class Example : MonoBehaviour, MyActions.IPlayerActions -/// { -/// private MyActions_Actions m_Actions; // Source code representation of asset. -/// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map. -/// -/// void Awake() -/// { -/// m_Actions = new MyActions_Actions(); // Create asset object. -/// m_Player = m_Actions.Player; // Extract action map object. -/// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions. -/// } -/// -/// void OnDestroy() -/// { -/// m_Actions.Dispose(); // Destroy asset object. -/// } -/// -/// void OnEnable() -/// { -/// m_Player.Enable(); // Enable all actions within map. -/// } -/// -/// void OnDisable() -/// { -/// m_Player.Disable(); // Disable all actions within map. -/// } -/// -/// #region Interface implementation of MyActions.IPlayerActions -/// -/// // Invoked when "Move" action is either started, performed or canceled. -/// public void OnMove(InputAction.CallbackContext context) -/// { -/// Debug.Log($"OnMove: {context.ReadValue<Vector2>()}"); -/// } -/// -/// // Invoked when "Attack" action is either started, performed or canceled. -/// public void OnAttack(InputAction.CallbackContext context) -/// { -/// Debug.Log($"OnAttack: {context.ReadValue<float>()}"); -/// } -/// -/// #endregion -/// } -/// -/// public partial class @GameInput: IInputActionCollection2, IDisposable { /// diff --git a/Assets/02_Scripts/Managers/GameManager.cs b/Assets/02_Scripts/Managers/GameManager.cs index 5812abc..4e76d0d 100644 --- a/Assets/02_Scripts/Managers/GameManager.cs +++ b/Assets/02_Scripts/Managers/GameManager.cs @@ -36,5 +36,7 @@ public void OnSceneLoaded() public void GameRestart() { Debug.Log("다시시작"); + + SceneLoadManager.Instance.RequestSceneChange("GameScene"); } } diff --git a/Assets/02_Scripts/Player/PlayerController.cs b/Assets/02_Scripts/Player/PlayerController.cs index 749fac8..623861e 100644 --- a/Assets/02_Scripts/Player/PlayerController.cs +++ b/Assets/02_Scripts/Player/PlayerController.cs @@ -1758,7 +1758,6 @@ private void TickHitstun() if (_hitstunTimer > 0f) _hitstunTimer -= Time.fixedDeltaTime; - Debug.Log($"_hitstunTimer : {_hitstunTimer}, _isGrounded : {_isGrounded} "); if (_hitstunTimer <= 0f && _isGrounded && !IsActionActive()) { @@ -1774,7 +1773,6 @@ public void TakeDamage(int amount, Vector2 hitVelocity = default, string hitReac if (_health == null || _health.IsDead) return; _health.TakeDamage(amount); - Debug.Log($"{name} 피격: -{amount} (HP: {_health.CurrentHealth}/{_health.MaxHealth})"); if(_health.CurrentHealth <= 0) { @@ -1786,5 +1784,11 @@ public void PlayerDead() { //재시작 UI 띄우기 GameManager.Instance.Restart.ShowRestart(); + + + + PlayerWeaponInventory.Instance.ClearWeaponInven(); + + Destroy(gameObject); } } diff --git a/Assets/99_Settings/UniversalRenderPipelineGlobalSettings.asset b/Assets/99_Settings/UniversalRenderPipelineGlobalSettings.asset index b0bd9fb..3efd1b2 100644 --- a/Assets/99_Settings/UniversalRenderPipelineGlobalSettings.asset +++ b/Assets/99_Settings/UniversalRenderPipelineGlobalSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d7282c12ab73cfbdd29fe1fbe0a9dbfce98f05a4e5f772426e42b16631f91653 -size 24579 +oid sha256:41163b15a20534ce447518fb5800e1848647e2c63bca698751145a04218eafd5 +size 26615 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 a51f2db..3763740 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:14ed992af37c34b6993928b196f13db6fc2940dd1dcb0c5cec3fb03210a98728 -size 551003 +oid sha256:a73237e48a3b6c0164ad0ffd483edeb7f27dab722aaf42dada64a71c184dbdd7 +size 25217 diff --git a/Packages/manifest.json b/Packages/manifest.json index 1dd4892..5d5e547 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -5,15 +5,15 @@ "com.unity.connect.share": "4.2.4", "com.unity.feature.2d": "2.0.2", "com.unity.feature.development": "1.0.2", - "com.unity.inputsystem": "1.18.0", - "com.unity.learn.iet-framework": "5.0.2", + "com.unity.inputsystem": "1.19.0", + "com.unity.learn.iet-framework": "5.0.3", "com.unity.multiplayer.center": "1.0.1", "com.unity.render-pipelines.universal": "17.3.0", "com.unity.shadergraph": "17.3.0", "com.unity.test-framework": "1.6.0", - "com.unity.timeline": "1.8.10", + "com.unity.timeline": "1.8.12", "com.unity.ugui": "2.0.0", - "com.unity.visualscripting": "1.9.9", + "com.unity.visualscripting": "1.9.11", "com.unity.modules.accessibility": "1.0.0", "com.unity.modules.adaptiveperformance": "1.0.0", "com.unity.modules.ai": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 3eade70..134a67b 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -11,11 +11,11 @@ "hash": "b92c05a25820cfc9f59ce4094eb46aaec8632ea2" }, "com.unity.2d.animation": { - "version": "13.0.4", + "version": "13.0.5", "depth": 1, "source": "registry", "dependencies": { - "com.unity.2d.common": "12.0.2", + "com.unity.2d.common": "12.0.3", "com.unity.2d.sprite": "1.0.0", "com.unity.collections": "2.4.3", "com.unity.modules.animation": "1.0.0", @@ -24,11 +24,11 @@ "url": "https://packages.unity.com" }, "com.unity.2d.aseprite": { - "version": "3.0.1", + "version": "3.0.2", "depth": 1, "source": "registry", "dependencies": { - "com.unity.2d.common": "12.0.1", + "com.unity.2d.common": "12.0.3", "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", "com.unity.mathematics": "1.2.6", @@ -61,11 +61,11 @@ "url": "https://packages.unity.com" }, "com.unity.2d.psdimporter": { - "version": "12.0.1", + "version": "12.0.2", "depth": 1, "source": "registry", "dependencies": { - "com.unity.2d.common": "12.0.1", + "com.unity.2d.common": "12.0.3", "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0" }, @@ -98,7 +98,7 @@ } }, "com.unity.2d.tilemap.extras": { - "version": "6.0.1", + "version": "6.0.2", "depth": 1, "source": "registry", "dependencies": { @@ -119,7 +119,7 @@ "url": "https://packages.unity.com" }, "com.unity.burst": { - "version": "1.8.28", + "version": "1.8.29", "depth": 2, "source": "registry", "dependencies": { @@ -139,14 +139,14 @@ "url": "https://packages.unity.com" }, "com.unity.collections": { - "version": "2.6.2", + "version": "2.6.6", "depth": 2, "source": "registry", "dependencies": { - "com.unity.burst": "1.8.23", + "com.unity.burst": "1.8.28", "com.unity.mathematics": "1.3.2", "com.unity.test-framework": "1.4.6", - "com.unity.nuget.mono-cecil": "1.11.5", + "com.unity.nuget.mono-cecil": "1.11.6", "com.unity.test-framework.performance": "3.0.3" }, "url": "https://packages.unity.com" @@ -162,7 +162,7 @@ "url": "https://packages.unity.com" }, "com.unity.editorcoroutines": { - "version": "1.0.1", + "version": "1.1.0", "depth": 1, "source": "registry", "dependencies": {}, @@ -179,14 +179,14 @@ "depth": 0, "source": "builtin", "dependencies": { - "com.unity.2d.animation": "13.0.4", + "com.unity.2d.animation": "13.0.5", "com.unity.2d.pixel-perfect": "5.1.1", - "com.unity.2d.psdimporter": "12.0.1", + "com.unity.2d.psdimporter": "12.0.2", "com.unity.2d.sprite": "1.0.0", "com.unity.2d.spriteshape": "13.0.0", "com.unity.2d.tilemap": "1.0.0", - "com.unity.2d.tilemap.extras": "6.0.1", - "com.unity.2d.aseprite": "3.0.1", + "com.unity.2d.tilemap.extras": "6.0.2", + "com.unity.2d.aseprite": "3.0.2", "com.unity.2d.tooling": "1.0.3" } }, @@ -196,15 +196,15 @@ "source": "builtin", "dependencies": { "com.unity.ide.visualstudio": "2.0.26", - "com.unity.ide.rider": "3.0.39", - "com.unity.editorcoroutines": "1.0.1", - "com.unity.performance.profile-analyzer": "1.3.1", + "com.unity.ide.rider": "3.0.40", + "com.unity.editorcoroutines": "1.1.0", + "com.unity.performance.profile-analyzer": "1.3.4", "com.unity.test-framework": "1.6.0", "com.unity.testtools.codecoverage": "1.3.0" } }, "com.unity.ide.rider": { - "version": "3.0.39", + "version": "3.0.40", "depth": 1, "source": "registry", "dependencies": { @@ -222,7 +222,7 @@ "url": "https://packages.unity.com" }, "com.unity.inputsystem": { - "version": "1.18.0", + "version": "1.19.0", "depth": 0, "source": "registry", "dependencies": { @@ -231,7 +231,7 @@ "url": "https://packages.unity.com" }, "com.unity.learn.iet-framework": { - "version": "5.0.2", + "version": "5.0.3", "depth": 0, "source": "registry", "dependencies": { @@ -270,7 +270,7 @@ "url": "https://packages.unity.com" }, "com.unity.performance.profile-analyzer": { - "version": "1.3.1", + "version": "1.3.4", "depth": 1, "source": "registry", "dependencies": {}, @@ -332,7 +332,7 @@ } }, "com.unity.splines": { - "version": "2.8.2", + "version": "2.8.4", "depth": 1, "source": "registry", "dependencies": { @@ -353,7 +353,7 @@ } }, "com.unity.test-framework.performance": { - "version": "3.2.0", + "version": "3.4.0", "depth": 3, "source": "registry", "dependencies": { @@ -373,7 +373,7 @@ "url": "https://packages.unity.com" }, "com.unity.timeline": { - "version": "1.8.10", + "version": "1.8.12", "depth": 0, "source": "registry", "dependencies": { @@ -394,7 +394,7 @@ } }, "com.unity.visualscripting": { - "version": "1.9.9", + "version": "1.9.11", "depth": 0, "source": "registry", "dependencies": { diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 407d63c..acb7ffb 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb746600aa5bc9bc99198d954d34257f502227e8b93e4eaffe298d3b4a3949f5 -size 26799 +oid sha256:5289a9982a5b87c6ead607cfb4843954d8855854ddb0d4380227536d180c81ba +size 26838 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index c9e01d3..63d0eb1 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 6000.3.9f1 -m_EditorVersionWithRevision: 6000.3.9f1 (7a9955a4f2fa) +m_EditorVersion: 6000.3.16f1 +m_EditorVersionWithRevision: 6000.3.16f1 (a56f230f6470) diff --git a/fix-mcp-key.ps1 b/fix-mcp-key.ps1 new file mode 100644 index 0000000..eb1b022 --- /dev/null +++ b/fix-mcp-key.ps1 @@ -0,0 +1,50 @@ +# Claude Code 를 완전히 종료한 뒤 일반 PowerShell 창에서 실행하세요. +# .claude.json 의 대/소문자 중복 프로젝트 키를 소문자 하나로 통일하고 +# UnityMCP 서버 설정을 보존합니다. + +$path = Join-Path $env:USERPROFILE ".claude.json" +$upper = "C:/repos/UnityProject/WhiteMan_Unity2D" +$lower = "c:/repos/UnityProject/WhiteMan_Unity2D" + +# 백업 +Copy-Item $path "$path.bak" -Force +Write-Host "백업 생성: $path.bak" + +$json = Get-Content $path -Raw -Encoding UTF8 | ConvertFrom-Json +$projects = $json.projects + +$unityMcp = $null +if ($projects.PSObject.Properties.Name -contains $upper) { + $unityMcp = $projects.$upper.mcpServers.UnityMCP +} +if ($null -eq $unityMcp -and ($projects.PSObject.Properties.Name -contains $lower)) { + $unityMcp = $projects.$lower.mcpServers.UnityMCP +} + +if ($null -eq $unityMcp) { + Write-Warning "UnityMCP 설정을 찾지 못했습니다. 중단합니다." + return +} + +# 소문자 키가 없으면 대문자 항목을 그대로 옮겨 사용 +if (-not ($projects.PSObject.Properties.Name -contains $lower)) { + $projects | Add-Member -NotePropertyName $lower -NotePropertyValue $projects.$upper +} + +# 소문자 키에 UnityMCP 보장 +if ($null -eq $projects.$lower.mcpServers) { + $projects.$lower | Add-Member -NotePropertyName "mcpServers" -NotePropertyValue ([pscustomobject]@{}) -Force +} +$projects.$lower.mcpServers | Add-Member -NotePropertyName "UnityMCP" -NotePropertyValue $unityMcp -Force + +# 대문자 중복 항목 제거 +if ($projects.PSObject.Properties.Name -contains $upper) { + $projects.PSObject.Properties.Remove($upper) +} + +# UTF-8 (BOM 없음) 으로 저장 +$out = $json | ConvertTo-Json -Depth 100 +[System.IO.File]::WriteAllText($path, $out, (New-Object System.Text.UTF8Encoding($false))) + +Write-Host "완료. 대문자 키 제거 + 소문자 키에 UnityMCP 통일됨." +Write-Host "이제 Claude Code 를 다시 실행하세요."