diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj
index 1e60b74..e1f26f3 100644
--- a/Assembly-CSharp.csproj
+++ b/Assembly-CSharp.csproj
@@ -105,6 +105,7 @@
+
@@ -121,6 +122,7 @@
+
diff --git a/Assets/Prefabs/Player/Player.prefab b/Assets/Prefabs/Player/Player.prefab
index 4e0b89e..2caff2f 100644
--- a/Assets/Prefabs/Player/Player.prefab
+++ b/Assets/Prefabs/Player/Player.prefab
@@ -22,6 +22,7 @@ GameObject:
- component: {fileID: 1698609800605343773}
- component: {fileID: -4348726977448206869}
- component: {fileID: 7148704114816793672}
+ - component: {fileID: 6581787771557727003}
m_Layer: 9
m_Name: Player
m_TagString: Untagged
@@ -361,6 +362,20 @@ MonoBehaviour:
SwitchTransformSpaceWhenParented: 0
Interpolate: 1
SlerpPosition: 0
+--- !u!114 &6581787771557727003
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1314983689436087486}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe6ae668d2ff79344bfdd618dd0d962a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.InteractableModalManager
+ interactableModal: {fileID: 0}
+ playerInteraction: {fileID: 0}
--- !u!1001 &1445453803682481668
PrefabInstance:
m_ObjectHideFlags: 0
diff --git a/Assets/Prefabs/Resource.prefab b/Assets/Prefabs/Resource.prefab
index bc1aff6..f0c4c6a 100644
--- a/Assets/Prefabs/Resource.prefab
+++ b/Assets/Prefabs/Resource.prefab
@@ -79,6 +79,11 @@ MonoBehaviour:
resourceName: "\uAD11\uC11D"
rechargeInterval: 1
rechargeAmount: 5
+ _qualityPercentage:
+ m_InternalValue: 0
+ _displayQuality: 0
+ _displayMaxResources: 100
+ _displayRechargeAmount: 10
interactionAnimationTrigger: Mining
equipmentData:
socketName: handslot.r
@@ -90,6 +95,8 @@ MonoBehaviour:
detachDelay: 0
gatheringEffectPrefab: {fileID: 0}
effectSpawnPoint: {fileID: 0}
+ allowWorkerAssignment: 1
+ allowMultipleWorkers: 0
--- !u!65 &2900844162207268165
BoxCollider:
m_ObjectHideFlags: 0
diff --git a/Assets/Scenes/GameMain.unity b/Assets/Scenes/GameMain.unity
index cb0c5a6..a13f6e4 100644
--- a/Assets/Scenes/GameMain.unity
+++ b/Assets/Scenes/GameMain.unity
@@ -501,7 +501,7 @@ RectTransform:
m_Children:
- {fileID: 1053830688}
- {fileID: 1458057163}
- m_Father: {fileID: 0}
+ m_Father: {fileID: 860732961}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1194,6 +1194,50 @@ Transform:
m_Children: []
m_Father: {fileID: 576429380}
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!114 &790917424 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 7839034454177399683, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ m_PrefabInstance: {fileID: 3224371285579271499}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
+--- !u!1 &860732960
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 860732961}
+ m_Layer: 0
+ m_Name: UI
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &860732961
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 860732960}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -33.26864, y: 1.82041, z: -94}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 457600247}
+ - {fileID: 1527786189}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &908127335
GameObject:
m_ObjectHideFlags: 0
@@ -1735,6 +1779,32 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 11e3760dda2c0164abf759c18d918893, type: 3}
+--- !u!1 &1077899659 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 6332587651613424585, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ m_PrefabInstance: {fileID: 3224371285579271499}
+ m_PrefabAsset: {fileID: 0}
+--- !u!224 &1077899660 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ m_PrefabInstance: {fileID: 3224371285579271499}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &1077899665
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1077899659}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7008c42d5ce774d4d894f45b8a80a590, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.InteractableModal
+ modalPanel: {fileID: 1077899659}
+ keyText: {fileID: 1714106255}
+ interactText: {fileID: 790917424}
+ defaultKey: E
--- !u!4 &1135136907 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3247786716306397435, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
@@ -2294,6 +2364,108 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1458057162}
m_CullTransparentMesh: 1
+--- !u!1 &1527786185
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1527786189}
+ - component: {fileID: 1527786188}
+ - component: {fileID: 1527786187}
+ - component: {fileID: 1527786186}
+ m_Layer: 5
+ m_Name: InteractableModalCanvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1527786186
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1527786185}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1527786187
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1527786185}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
+ m_UiScaleMode: 1
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 1920, y: 1080}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &1527786188
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1527786185}
+ 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: 25
+ m_UpdateRectTransformForStandalone: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &1527786189
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1527786185}
+ 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:
+ - {fileID: 1077899660}
+ m_Father: {fileID: 860732961}
+ 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!1001 &1536695129
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2489,6 +2661,17 @@ Transform:
m_Children: []
m_Father: {fileID: 640318137}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1714106255 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 3239286098141521726, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ m_PrefabInstance: {fileID: 3224371285579271499}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
--- !u!1 &1859567749
GameObject:
m_ObjectHideFlags: 0
@@ -3193,6 +3376,138 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 348c7681306990746bb7cab7a386be1e, type: 3}
+--- !u!1001 &3224371285579271499
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 1527786189}
+ m_Modifications:
+ - target: {fileID: 1325989084779099817, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1325989084779099817, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1325989084779099817, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1325989084779099817, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2331150165244547235, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2331150165244547235, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2331150165244547235, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2331150165244547235, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 200
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 50
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4412526746668541195, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6332587651613424585, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ propertyPath: m_Name
+ value: ModalPanel
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 6332587651613424585, guid: 274613c415998a647a86a5e09950ce41, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1077899665}
+ m_SourcePrefab: {fileID: 100100000, guid: 274613c415998a647a86a5e09950ce41, type: 3}
--- !u!1001 &4786254629656932894
PrefabInstance:
m_ObjectHideFlags: 0
@@ -3376,6 +3691,6 @@ SceneRoots:
- {fileID: 1433142232}
- {fileID: 1036857644}
- {fileID: 2053530248}
- - {fileID: 457600247}
- {fileID: 640318137}
- {fileID: 576429380}
+ - {fileID: 860732961}
diff --git a/Assets/Scripts/BuildingQuickslotUI.cs b/Assets/Scripts/BuildingQuickslotUI.cs
index 2d465af..f4dc709 100644
--- a/Assets/Scripts/BuildingQuickslotUI.cs
+++ b/Assets/Scripts/BuildingQuickslotUI.cs
@@ -104,15 +104,8 @@ namespace Northbound
{
int slotIndex = i; // 클로저 캡처를 위한 로컬 변수
_quickslotActions[i].performed += ctx => OnQuickslotPressed(slotIndex);
- // Debug.Log($"[BuildingQuickslotUI] QuickSlot{i + 1} 액션 바인딩 성공");
- }
- else
- {
- Debug.LogWarning($"[BuildingQuickslotUI] QuickSlot{i + 1} 액션이 null입니다. Input Actions 에셋을 확인하세요.");
}
}
-
- Debug.Log($"[BuildingQuickslotUI] {_quickslotActions.Length}개의 퀵슬롯 액션 초기화됨 (최대 8개 키 바인딩)");
}
///
@@ -201,8 +194,6 @@ namespace Northbound
{
CreateSlot(buildings[i], i);
}
-
- Debug.Log($"[BuildingQuickslotUI] {slotButtons.Count}개의 건물 슬롯 생성됨");
}
///
@@ -248,8 +239,6 @@ namespace Northbound
{
SelectBuilding(0);
}
-
- Debug.Log("[BuildingQuickslotUI] 건설 퀵슬롯 표시됨");
}
///
@@ -279,8 +268,6 @@ namespace Northbound
if (slot != null)
slot.SetSelected(false);
}
-
- Debug.Log("[BuildingQuickslotUI] 건설 퀵슬롯 숨김");
}
///
@@ -309,8 +296,6 @@ namespace Northbound
// Description Panel 업데이트
UpdateDescriptionPanel();
-
- Debug.Log($"[BuildingQuickslotUI] 건물 선택됨: {slotButtons[index].GetBuildingName()} (인덱스: {index})");
}
///
diff --git a/Assets/Scripts/Core.cs b/Assets/Scripts/Core.cs
index 17043d5..10bb1e8 100644
--- a/Assets/Scripts/Core.cs
+++ b/Assets/Scripts/Core.cs
@@ -66,7 +66,6 @@ namespace Northbound
private void OnHealthChanged(int previousValue, int newValue)
{
- Debug.Log($"[Core] 코어 체력 변경: {previousValue} → {newValue} ({newValue}/{maxHealth})");
}
#region ITeamMember Implementation
@@ -94,8 +93,6 @@ namespace Northbound
int actualDamage = Mathf.Min(damage, _currentHealth.Value);
_currentHealth.Value -= actualDamage;
- Debug.Log($"[Core] 코어가 {actualDamage} 데미지를 받았습니다! 남은 체력: {_currentHealth.Value}/{maxHealth}");
-
// 데미지 이펙트
ShowDamageEffectClientRpc();
@@ -110,8 +107,6 @@ namespace Northbound
{
if (!IsServer) return;
- Debug.Log($"[Core] 코어가 파괴되었습니다! 게임 오버!");
-
// 파괴 이펙트
ShowDestroyEffectClientRpc();
@@ -165,8 +160,6 @@ namespace Northbound
int previousAmount = _totalResources.Value;
_totalResources.Value -= amount;
-
- Debug.Log($"[Core] {amount} 자원 소비. 남은 자원: {_totalResources.Value}/{maxStorageCapacity}");
}
///
@@ -185,8 +178,6 @@ namespace Northbound
if (amount > 0)
{
_totalResources.Value += amount;
- Debug.Log($"[Core] {amount} 자원 추가. 총 자원: {_totalResources.Value}" +
- (unlimitedStorage ? "" : $"/{maxStorageCapacity}") + "");
}
}
@@ -230,11 +221,11 @@ namespace Northbound
{
if (unlimitedStorage)
{
- return "[E] 자원 보관 (무제한)";
+ return "[E] Deposit (No Limit)";
}
else
{
- return $"[E] 자원 보관 ({_totalResources.Value}/{maxStorageCapacity})";
+ return $"[E] Deposit ({_totalResources.Value}/{maxStorageCapacity})";
}
}
@@ -269,7 +260,6 @@ namespace Northbound
int playerResourceAmount = resourceManager.GetPlayerResourceAmount(playerId);
if (playerResourceAmount <= 0)
{
- Debug.Log($"플레이어 {playerId}가 건낼 자원이 없습니다.");
return;
}
@@ -292,7 +282,6 @@ namespace Northbound
if (depositAmount <= 0)
{
- Debug.Log($"코어의 저장 공간이 부족합니다.");
return;
}
@@ -300,9 +289,6 @@ namespace Northbound
UpdatePlayerResourcesClientRpc(playerId);
_totalResources.Value += depositAmount;
- Debug.Log($"[Core] 플레이어 {playerId}가 {depositAmount} 자원을 건넸습니다. 코어 총 자원: {_totalResources.Value}" +
- (unlimitedStorage ? "" : $"/{maxStorageCapacity}") + "");
-
ShowDepositEffectClientRpc();
}
diff --git a/Assets/Scripts/CreepCamp.cs b/Assets/Scripts/CreepCamp.cs
index 30410ec..82b509e 100644
--- a/Assets/Scripts/CreepCamp.cs
+++ b/Assets/Scripts/CreepCamp.cs
@@ -56,7 +56,6 @@ namespace Northbound
}
float remainingCost = campCostBudget * campStrength;
- Debug.Log($"[CreepCamp] Cost budget: {campCostBudget} x {campStrength:F2} = {remainingCost:F2}");
int spawnedCount = 0;
diff --git a/Assets/Scripts/InteractableModal.cs b/Assets/Scripts/InteractableModal.cs
new file mode 100644
index 0000000..de9374f
--- /dev/null
+++ b/Assets/Scripts/InteractableModal.cs
@@ -0,0 +1,90 @@
+using TMPro;
+using UnityEngine;
+
+namespace Northbound
+{
+ public class InteractableModal : MonoBehaviour
+ {
+ [Header("UI References")]
+ [SerializeField] private GameObject modalPanel;
+ [SerializeField] private TextMeshProUGUI keyText;
+ [SerializeField] private TextMeshProUGUI interactText;
+
+ [Header("Settings")]
+ [SerializeField] private string defaultKey = "E";
+
+ private IInteractable _currentInteractable;
+ private Canvas _parentCanvas;
+
+ private void Awake()
+ {
+ _parentCanvas = GetComponentInParent