diff --git a/Assets/Scripts/BuildingPlacement.cs b/Assets/Scripts/BuildingPlacement.cs index 52014da..ba0ad4c 100644 --- a/Assets/Scripts/BuildingPlacement.cs +++ b/Assets/Scripts/BuildingPlacement.cs @@ -148,12 +148,24 @@ namespace Northbound private void OnCancel(InputAction.CallbackContext context) { - // 드래그 중일 때만 취소 + // 드래그 중일 때 드래그 취소 if (isDragging && isBuildModeActive) { CancelDrag(); Debug.Log("[BuildingPlacement] 드래그 건설 취소됨"); } + // 건설 모드 활성화 상태면 건설 모드 종료 + else if (isBuildModeActive) + { + isBuildModeActive = false; + if (BuildingQuickslotUI.Instance != null) + { + BuildingQuickslotUI.Instance.HideQuickslot(); + } + DestroyPreview(); + ClearDragPreviews(); + Debug.Log("[BuildingPlacement] 건설 모드 취소됨"); + } } private void OnToggleBuildMode(InputAction.CallbackContext context) diff --git a/Assets/Scripts/BuildingQuickslotUI.cs b/Assets/Scripts/BuildingQuickslotUI.cs index f4dc709..db43264 100644 --- a/Assets/Scripts/BuildingQuickslotUI.cs +++ b/Assets/Scripts/BuildingQuickslotUI.cs @@ -29,6 +29,7 @@ namespace Northbound private List slotButtons = new List(); private BuildingPlacement buildingPlacement; private int currentSelectedIndex = -1; + private int lastSelectedIndex = 0; private PlayerInputActions _inputActions; private InputAction[] _quickslotActions; @@ -234,8 +235,12 @@ namespace Northbound // 퀵슬롯 입력 활성화 EnableQuickslotActions(true); - // 기본 선택 (첫 번째 건물) - if (slotButtons.Count > 0) + // 마지막으로 선택된 건물 선택 + if (slotButtons.Count > 0 && lastSelectedIndex >= 0 && lastSelectedIndex < slotButtons.Count) + { + SelectBuilding(lastSelectedIndex); + } + else if (slotButtons.Count > 0) { SelectBuilding(0); } @@ -286,6 +291,7 @@ namespace Northbound // 새로운 선택 currentSelectedIndex = index; + lastSelectedIndex = index; slotButtons[index].SetSelected(true); // BuildingPlacement에 알림