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에 알림