상호작용 시 모달 UI 추가(임시)
기타 디버깅 로그 제거
This commit is contained in:
@@ -105,6 +105,7 @@
|
||||
<Compile Include="Assets\Scripts\BuildingManager.cs" />
|
||||
<Compile Include="Assets\Scripts\GhostMaterialTest.cs" />
|
||||
<Compile Include="Assets\Scripts\BuildingPlacement.cs" />
|
||||
<Compile Include="Assets\Scripts\InteractableModalManager.cs" />
|
||||
<Compile Include="Assets\Scripts\MonsterDataComponent.cs" />
|
||||
<Compile Include="Assets\Scripts\Core.cs" />
|
||||
<Compile Include="Assets\Scripts\GamePortConfig.cs" />
|
||||
@@ -121,6 +122,7 @@
|
||||
<Compile Include="Assets\Scripts\NetworkPlayerController.cs" />
|
||||
<Compile Include="Assets\Scripts\PlayerInteraction.cs" />
|
||||
<Compile Include="Assets\Scripts\FogOfWarVisibility.cs" />
|
||||
<Compile Include="Assets\Scripts\InteractableModal.cs" />
|
||||
<Compile Include="Assets\Scripts\NetworkResetAndRestart.cs" />
|
||||
<Compile Include="Assets\Scripts\NetworkDebug.cs" />
|
||||
<Compile Include="Assets\Data\Scripts\DataClasses\DefaultSettingsData.cs" />
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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개 키 바인딩)");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -201,8 +194,6 @@ namespace Northbound
|
||||
{
|
||||
CreateSlot(buildings[i], i);
|
||||
}
|
||||
|
||||
Debug.Log($"[BuildingQuickslotUI] {slotButtons.Count}개의 건물 슬롯 생성됨");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -248,8 +239,6 @@ namespace Northbound
|
||||
{
|
||||
SelectBuilding(0);
|
||||
}
|
||||
|
||||
Debug.Log("[BuildingQuickslotUI] 건설 퀵슬롯 표시됨");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -279,8 +268,6 @@ namespace Northbound
|
||||
if (slot != null)
|
||||
slot.SetSelected(false);
|
||||
}
|
||||
|
||||
Debug.Log("[BuildingQuickslotUI] 건설 퀵슬롯 숨김");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -309,8 +296,6 @@ namespace Northbound
|
||||
|
||||
// Description Panel 업데이트
|
||||
UpdateDescriptionPanel();
|
||||
|
||||
Debug.Log($"[BuildingQuickslotUI] 건물 선택됨: {slotButtons[index].GetBuildingName()} (인덱스: {index})");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -66,7 +66,6 @@ namespace Northbound
|
||||
|
||||
private void OnHealthChanged(int previousValue, int newValue)
|
||||
{
|
||||
Debug.Log($"<color=red>[Core] 코어 체력 변경: {previousValue} → {newValue} ({newValue}/{maxHealth})</color>");
|
||||
}
|
||||
|
||||
#region ITeamMember Implementation
|
||||
@@ -94,8 +93,6 @@ namespace Northbound
|
||||
int actualDamage = Mathf.Min(damage, _currentHealth.Value);
|
||||
_currentHealth.Value -= actualDamage;
|
||||
|
||||
Debug.Log($"<color=red>[Core] 코어가 {actualDamage} 데미지를 받았습니다! 남은 체력: {_currentHealth.Value}/{maxHealth}</color>");
|
||||
|
||||
// 데미지 이펙트
|
||||
ShowDamageEffectClientRpc();
|
||||
|
||||
@@ -110,8 +107,6 @@ namespace Northbound
|
||||
{
|
||||
if (!IsServer) return;
|
||||
|
||||
Debug.Log($"<color=red>[Core] 코어가 파괴되었습니다! 게임 오버!</color>");
|
||||
|
||||
// 파괴 이펙트
|
||||
ShowDestroyEffectClientRpc();
|
||||
|
||||
@@ -165,8 +160,6 @@ namespace Northbound
|
||||
|
||||
int previousAmount = _totalResources.Value;
|
||||
_totalResources.Value -= amount;
|
||||
|
||||
Debug.Log($"<color=yellow>[Core] {amount} 자원 소비. 남은 자원: {_totalResources.Value}/{maxStorageCapacity}</color>");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -185,8 +178,6 @@ namespace Northbound
|
||||
if (amount > 0)
|
||||
{
|
||||
_totalResources.Value += amount;
|
||||
Debug.Log($"<color=green>[Core] {amount} 자원 추가. 총 자원: {_totalResources.Value}" +
|
||||
(unlimitedStorage ? "" : $"/{maxStorageCapacity}") + "</color>");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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($"<color=green>[Core] 플레이어 {playerId}가 {depositAmount} 자원을 건넸습니다. 코어 총 자원: {_totalResources.Value}" +
|
||||
(unlimitedStorage ? "" : $"/{maxStorageCapacity}") + "</color>");
|
||||
|
||||
ShowDepositEffectClientRpc();
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,6 @@ namespace Northbound
|
||||
}
|
||||
|
||||
float remainingCost = campCostBudget * campStrength;
|
||||
Debug.Log($"[CreepCamp] Cost budget: {campCostBudget} x {campStrength:F2} = {remainingCost:F2}");
|
||||
|
||||
int spawnedCount = 0;
|
||||
|
||||
|
||||
90
Assets/Scripts/InteractableModal.cs
Normal file
90
Assets/Scripts/InteractableModal.cs
Normal file
@@ -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<Canvas>();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (modalPanel != null)
|
||||
{
|
||||
modalPanel.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void ShowModal(IInteractable interactable)
|
||||
{
|
||||
if (interactable == null)
|
||||
{
|
||||
HideModal();
|
||||
return;
|
||||
}
|
||||
|
||||
_currentInteractable = interactable;
|
||||
|
||||
if (modalPanel != null)
|
||||
{
|
||||
modalPanel.SetActive(true);
|
||||
UpdateModalContent();
|
||||
}
|
||||
}
|
||||
|
||||
public void HideModal()
|
||||
{
|
||||
_currentInteractable = null;
|
||||
|
||||
if (modalPanel != null)
|
||||
{
|
||||
modalPanel.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateModalContent()
|
||||
{
|
||||
if (_currentInteractable == null)
|
||||
return;
|
||||
|
||||
if (keyText != null)
|
||||
{
|
||||
keyText.text = defaultKey;
|
||||
}
|
||||
|
||||
if (interactText != null)
|
||||
{
|
||||
string prompt = _currentInteractable.GetInteractionPrompt();
|
||||
interactText.text = ExtractInteractText(prompt);
|
||||
}
|
||||
}
|
||||
|
||||
private string ExtractInteractText(string prompt)
|
||||
{
|
||||
if (string.IsNullOrEmpty(prompt))
|
||||
return string.Empty;
|
||||
|
||||
int startIndex = prompt.IndexOf(']');
|
||||
if (startIndex >= 0 && startIndex + 1 < prompt.Length)
|
||||
{
|
||||
return prompt.Substring(startIndex + 1).Trim();
|
||||
}
|
||||
|
||||
return prompt;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/InteractableModal.cs.meta
Normal file
2
Assets/Scripts/InteractableModal.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7008c42d5ce774d4d894f45b8a80a590
|
||||
96
Assets/Scripts/InteractableModalManager.cs
Normal file
96
Assets/Scripts/InteractableModalManager.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Northbound
|
||||
{
|
||||
public class InteractableModalManager : MonoBehaviour
|
||||
{
|
||||
[Header("UI Reference")]
|
||||
public InteractableModal interactableModal;
|
||||
|
||||
[Header("References")]
|
||||
[SerializeField] private PlayerInteraction playerInteraction;
|
||||
|
||||
private IInteractable _currentInteractable;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (playerInteraction == null)
|
||||
{
|
||||
playerInteraction = GetComponent<PlayerInteraction>();
|
||||
}
|
||||
|
||||
if (interactableModal == null)
|
||||
{
|
||||
interactableModal = FindObjectOfType<InteractableModal>();
|
||||
}
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (interactableModal != null)
|
||||
{
|
||||
interactableModal.HideModal();
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (playerInteraction == null)
|
||||
return;
|
||||
|
||||
IInteractable detectedInteractable = GetDetectedInteractable();
|
||||
|
||||
if (detectedInteractable != _currentInteractable)
|
||||
{
|
||||
_currentInteractable = detectedInteractable;
|
||||
|
||||
if (_currentInteractable != null)
|
||||
{
|
||||
ShowModal(_currentInteractable);
|
||||
}
|
||||
else
|
||||
{
|
||||
HideModal();
|
||||
}
|
||||
}
|
||||
else if (_currentInteractable != null)
|
||||
{
|
||||
UpdateModalContent();
|
||||
}
|
||||
}
|
||||
|
||||
private IInteractable GetDetectedInteractable()
|
||||
{
|
||||
var field = playerInteraction.GetType().GetField("_currentInteractable", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
|
||||
if (field != null)
|
||||
{
|
||||
return field.GetValue(playerInteraction) as IInteractable;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void ShowModal(IInteractable interactable)
|
||||
{
|
||||
if (interactableModal != null)
|
||||
{
|
||||
interactableModal.ShowModal(interactable);
|
||||
}
|
||||
}
|
||||
|
||||
private void HideModal()
|
||||
{
|
||||
if (interactableModal != null)
|
||||
{
|
||||
interactableModal.HideModal();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateModalContent()
|
||||
{
|
||||
if (interactableModal != null)
|
||||
{
|
||||
interactableModal.UpdateModalContent();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/InteractableModalManager.cs.meta
Normal file
2
Assets/Scripts/InteractableModalManager.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe6ae668d2ff79344bfdd618dd0d962a
|
||||
@@ -211,8 +211,6 @@ namespace Northbound
|
||||
}
|
||||
|
||||
GenerateCreepCamps();
|
||||
|
||||
Debug.Log($"[MapGenerator] Map generation complete!");
|
||||
}
|
||||
|
||||
#region Resource Generation
|
||||
@@ -233,7 +231,6 @@ namespace Northbound
|
||||
{
|
||||
_generatedResources = resources;
|
||||
success = true;
|
||||
Debug.Log($"[MapGenerator] Successfully generated resources on attempt {attempt + 1}");
|
||||
break;
|
||||
}
|
||||
else
|
||||
@@ -401,8 +398,6 @@ namespace Northbound
|
||||
{
|
||||
_generatedResources[i].finalProduction *= _globalProductionMultiplier;
|
||||
}
|
||||
|
||||
Debug.Log($"[MapGenerator] Resource fallback layout generated. Global multiplier: {_globalProductionMultiplier:F2}");
|
||||
}
|
||||
|
||||
private void SpawnResources()
|
||||
@@ -452,15 +447,12 @@ namespace Northbound
|
||||
{
|
||||
if (obstacles.Count == 0)
|
||||
{
|
||||
Debug.Log("[MapGenerator] No obstacles configured, skipping obstacle generation.");
|
||||
return;
|
||||
}
|
||||
|
||||
int totalSpawned = 0;
|
||||
int targetCount = Mathf.RoundToInt(maxTotalObstacles * obstacleDensity);
|
||||
|
||||
Debug.Log($"[MapGenerator] Starting obstacle generation. Target: {targetCount}, Density: {obstacleDensity}");
|
||||
|
||||
foreach (var obstacle in obstacles)
|
||||
{
|
||||
if (obstacle.prefab == null)
|
||||
@@ -475,7 +467,6 @@ namespace Northbound
|
||||
if (TrySpawnObstacle(obstacle))
|
||||
{
|
||||
totalSpawned++;
|
||||
Debug.Log($"[MapGenerator] Spawned min required obstacle: {obstacle.prefab.name}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -513,8 +504,6 @@ namespace Northbound
|
||||
consecutiveFailures++;
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"[MapGenerator] Spawned {totalSpawned} obstacles (target: {targetCount}). Consecutive failures: {consecutiveFailures}");
|
||||
}
|
||||
|
||||
private bool TrySpawnObstacle(ObstacleEntry obstacleEntry)
|
||||
@@ -697,7 +686,7 @@ namespace Northbound
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log($"[MapGenerator] Starting creep camp generation. Resources: {_generatedResources.Length}, Additional camps: {additionalCreepCampCount}");
|
||||
|
||||
|
||||
int totalCampsSpawned = 0;
|
||||
|
||||
@@ -707,7 +696,6 @@ namespace Northbound
|
||||
if (campPosition != Vector3.zero)
|
||||
{
|
||||
float strength = CalculateCampStrength(_generatedResources[i].position.y, isResourceCamp: true);
|
||||
Debug.Log($"[MapGenerator] Spawning resource camp {i + 1} for resource at {_generatedResources[i].position}, position: {campPosition}, strength: {strength:F2} (with bonus)");
|
||||
SpawnCreepCamp(campPosition, strength);
|
||||
_creepCampPositions.Add(campPosition);
|
||||
totalCampsSpawned++;
|
||||
@@ -721,29 +709,22 @@ namespace Northbound
|
||||
if (campPosition != Vector3.zero)
|
||||
{
|
||||
float strength = CalculateCampStrength(campPosition.z, isResourceCamp: false);
|
||||
Debug.Log($"[MapGenerator] Spawning additional camp {i + 1}, position: {campPosition}, strength: {strength:F2}");
|
||||
SpawnCreepCamp(campPosition, strength);
|
||||
_creepCampPositions.Add(campPosition);
|
||||
additionalSpawned++;
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"[MapGenerator] Spawned {totalCampsSpawned} resource-based camps and {additionalSpawned} additional camps. Total: {totalCampsSpawned + additionalSpawned}");
|
||||
}
|
||||
|
||||
private void LoadCreepPrefabs()
|
||||
{
|
||||
Debug.Log($"[MapGenerator] LoadCreepPrefabs called, current count: {_creepPrefabs.Count}");
|
||||
|
||||
if (_creepPrefabs.Count > 0)
|
||||
{
|
||||
Debug.Log($"[MapGenerator] Skipping load, already have {_creepPrefabs.Count} prefabs");
|
||||
return;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
string[] prefabGuids = UnityEditor.AssetDatabase.FindAssets("t:Prefab", new[] { "Assets/Prefabs/Creep" });
|
||||
Debug.Log($"[MapGenerator] Found {prefabGuids.Length} prefabs in Assets/Prefabs/Creep/");
|
||||
_creepPrefabs.Clear();
|
||||
|
||||
foreach (string guid in prefabGuids)
|
||||
@@ -754,18 +735,13 @@ namespace Northbound
|
||||
if (prefab != null && prefab.GetComponent<CreepDataComponent>() != null)
|
||||
{
|
||||
_creepPrefabs.Add(prefab);
|
||||
Debug.Log($"[MapGenerator] Added creep prefab: {prefab.name}");
|
||||
}
|
||||
}
|
||||
#else
|
||||
Debug.LogWarning("[MapGenerator] Creep prefabs not loaded in build. Please assign creep prefabs manually in Inspector.");
|
||||
#endif
|
||||
|
||||
if (_creepPrefabs.Count > 0)
|
||||
{
|
||||
Debug.Log($"[MapGenerator] Loaded {_creepPrefabs.Count} creep prefabs from Assets/Prefabs/Creep/");
|
||||
}
|
||||
else
|
||||
if (_creepPrefabs.Count == 0)
|
||||
{
|
||||
Debug.LogWarning("[MapGenerator] No creep prefabs loaded!");
|
||||
}
|
||||
|
||||
@@ -81,7 +81,6 @@ namespace Northbound
|
||||
{
|
||||
if (!_currentInteractable.CanInteract(OwnerClientId))
|
||||
{
|
||||
Debug.Log("[PlayerInteraction] Interactable no longer valid - ending interaction");
|
||||
EndInteraction();
|
||||
}
|
||||
}
|
||||
@@ -202,7 +201,6 @@ namespace Northbound
|
||||
_interactionTimeoutCoroutine = null;
|
||||
}
|
||||
_isInteracting = false;
|
||||
Debug.Log($"[PlayerInteraction] Owner {OwnerClientId} - 상호작용 완료");
|
||||
}
|
||||
|
||||
// ========================================
|
||||
|
||||
@@ -253,7 +253,6 @@ namespace Northbound
|
||||
[Rpc(SendTo.Server, InvokePermission = RpcInvokePermission.Everyone)]
|
||||
private void AssignOrGatherResourceServerRpc(ulong playerId, ulong resourceId)
|
||||
{
|
||||
Debug.Log($"[Resource] AssignOrGatherResourceServerRpc called - PlayerID: {playerId}, ResourceID: {resourceId}");
|
||||
|
||||
bool workerAssigned = false;
|
||||
|
||||
@@ -264,11 +263,8 @@ namespace Northbound
|
||||
|
||||
if (assignedWorker != null)
|
||||
{
|
||||
Debug.Log($"[Resource] Worker found server-side - OwnerPlayerId: {assignedWorker.OwnerPlayerId}, CurrentState: {(int)assignedWorker.CurrentState}");
|
||||
|
||||
if ((int)assignedWorker.CurrentState == 1) // 1 = Following
|
||||
{
|
||||
Debug.Log($"[Resource] ✓ Assigning worker to resource!");
|
||||
assignedWorker.AssignMiningTargetServerRpc(resourceId);
|
||||
workerAssigned = true;
|
||||
|
||||
@@ -279,10 +275,6 @@ namespace Northbound
|
||||
Debug.LogWarning($"[Resource] Worker not in Following state! State: {(int)assignedWorker.CurrentState}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"[Resource] No worker found for player {playerId} in Following state");
|
||||
}
|
||||
}
|
||||
|
||||
if (!workerAssigned)
|
||||
@@ -354,9 +346,9 @@ namespace Northbound
|
||||
public string GetInteractionPrompt()
|
||||
{
|
||||
if (_currentResources.Value <= 0)
|
||||
return "자원 충전 중...";
|
||||
return "Recharging...";
|
||||
|
||||
return $"[E] {resourceName} 채집 ({_currentResources.Value}/{ActualMaxResources})";
|
||||
return $"[E] {resourceName} Mining ({_currentResources.Value}/{ActualMaxResources})";
|
||||
}
|
||||
|
||||
public string GetInteractionAnimation()
|
||||
@@ -376,8 +368,6 @@ namespace Northbound
|
||||
|
||||
private Worker FindWorkerForPlayer(ulong playerId)
|
||||
{
|
||||
Debug.Log($"[Resource] FindWorkerForPlayer called - Looking for worker assigned to player {playerId}");
|
||||
|
||||
if (NetworkManager.Singleton == null || NetworkManager.Singleton.SpawnManager == null)
|
||||
{
|
||||
Debug.LogWarning($"[Resource] FindWorkerForPlayer - NetworkManager or SpawnManager is null");
|
||||
@@ -396,18 +386,15 @@ namespace Northbound
|
||||
if (worker != null)
|
||||
{
|
||||
workersFound++;
|
||||
Debug.Log($"[Resource] FindWorkerForPlayer - Found worker: {worker.gameObject.name}, OwnerPlayerId: {worker.OwnerPlayerId}, State: {(int)worker.CurrentState}");
|
||||
|
||||
// Use worker's internal OwnerPlayerId, NOT NetworkObject.OwnerClientId!
|
||||
if (worker.OwnerPlayerId == playerId && (int)worker.CurrentState == 1) // 1 = Following
|
||||
{
|
||||
Debug.Log($"[Resource] FindWorkerForPlayer - ✓ Found worker: {worker.gameObject.name} for player {playerId}");
|
||||
return worker;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Debug.LogWarning($"[Resource] FindWorkerForPlayer - Checked {objectsChecked} objects, found {workersFound} workers, no matching worker in Following state!");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,7 +77,6 @@ namespace Northbound
|
||||
|
||||
if (collectedAmount <= 0)
|
||||
{
|
||||
Debug.Log($"플레이어 {playerId}의 인벤토리가 가득 찼습니다.");
|
||||
_isCollected = false;
|
||||
return;
|
||||
}
|
||||
@@ -85,8 +84,6 @@ namespace Northbound
|
||||
resourceManager.AddResource(playerId, collectedAmount);
|
||||
UpdatePlayerResourcesClientRpc(playerId);
|
||||
|
||||
Debug.Log($"플레이어 {playerId}가 {collectedAmount} {resourceName}을(를) 획득했습니다.");
|
||||
|
||||
ShowPickupEffectClientRpc();
|
||||
Invoke(nameof(DestroyPickup), 0.1f);
|
||||
}
|
||||
@@ -129,7 +126,7 @@ namespace Northbound
|
||||
|
||||
public string GetInteractionPrompt()
|
||||
{
|
||||
return $"[E] {resourceName} 획득 (+{resourceAmount})";
|
||||
return $"[E] {resourceName} Get (+{resourceAmount})";
|
||||
}
|
||||
|
||||
public string GetInteractionAnimation()
|
||||
|
||||
@@ -113,7 +113,6 @@ namespace Northbound
|
||||
if (cores.Length > 0)
|
||||
{
|
||||
_core = cores[0];
|
||||
Debug.Log($"[Worker] 코어 찾음: {_core.name}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -466,9 +465,9 @@ namespace Northbound
|
||||
{
|
||||
var coreResourceManager = CoreResourceManager.Instance;
|
||||
if (coreResourceManager != null && !coreResourceManager.CanAfford(recruitmentCost))
|
||||
return $"자원 부족 (필요: {recruitmentCost})";
|
||||
return $"Resource Required: {recruitmentCost})";
|
||||
|
||||
return $"[E] 워커 채용 - 비용: {recruitmentCost}";
|
||||
return $"[E] Recruit Worker: {recruitmentCost}";
|
||||
}
|
||||
else if (NetworkManager.Singleton != null && _ownerPlayerId.Value == NetworkManager.Singleton.LocalClientId)
|
||||
{
|
||||
@@ -480,9 +479,9 @@ namespace Northbound
|
||||
WorkerState.WaitingForResource => "자원 대기 중",
|
||||
_ => "대기 중"
|
||||
};
|
||||
return $"워커 (가방: {_currentBagResources.Value}/{maxBagCapacity}) - {stateText}";
|
||||
return $"Worker (Bag: {_currentBagResources.Value}/{maxBagCapacity}) - {stateText}";
|
||||
}
|
||||
return "다른 플레이어의 워커";
|
||||
return "Not My Worker";
|
||||
}
|
||||
|
||||
public string GetInteractionAnimation()
|
||||
|
||||
@@ -44,7 +44,6 @@ namespace Northbound
|
||||
|
||||
private void OnWorkerCountChanged(int previousValue, int newValue)
|
||||
{
|
||||
Debug.Log($"[WorkerSpawner] 워커 수 변경: {previousValue} → {newValue}");
|
||||
}
|
||||
|
||||
#region IInteractable Implementation
|
||||
@@ -129,8 +128,6 @@ namespace Northbound
|
||||
|
||||
ShowSpawnEffectClientRpc(spawnPosition);
|
||||
|
||||
Debug.Log($"[WorkerSpawner] Worker spawned (server-owned) and assigned to player {playerId} (Total: {_workerCount.Value}/{maxWorkers})");
|
||||
|
||||
ScheduleWorkerAssignment(playerId, workerNetObj.NetworkObjectId);
|
||||
}
|
||||
|
||||
@@ -179,7 +176,6 @@ namespace Northbound
|
||||
if (worker != null)
|
||||
{
|
||||
playerInteraction.assignedWorker = worker;
|
||||
Debug.Log($"[WorkerSpawner] Worker assigned to player {playerId}'s PlayerInteraction");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -199,15 +195,15 @@ namespace Northbound
|
||||
public string GetInteractionPrompt()
|
||||
{
|
||||
if (_workerCount.Value >= maxWorkers)
|
||||
return $"워커 수 최대 ({_workerCount.Value}/{maxWorkers})";
|
||||
return $"Worker ({_workerCount.Value}/{maxWorkers})";
|
||||
|
||||
float cooldownRemaining = Mathf.Max(0, spawnCooldown - (Time.time - _lastSpawnTime));
|
||||
if (cooldownRemaining > 0)
|
||||
return $"워커 생성 대기 중 ({cooldownRemaining:F1}s)";
|
||||
return $"Waiting Worker... ({cooldownRemaining:F1}s)";
|
||||
|
||||
var coreResourceManager = CoreResourceManager.Instance;
|
||||
if (coreResourceManager != null && !coreResourceManager.CanAfford(recruitmentCost))
|
||||
return $"자원 부족 (필요: {recruitmentCost})";
|
||||
return $"Resource Required: {recruitmentCost})";
|
||||
|
||||
return $"{interactionPrompt} ({_workerCount.Value}/{maxWorkers}) - 비용: {recruitmentCost}";
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
111
Assets/UI/INTERACTABLE_MODAL_SETUP.md
Normal file
111
Assets/UI/INTERACTABLE_MODAL_SETUP.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Interactable Modal UI Setup Guide
|
||||
|
||||
## Overview
|
||||
Simple modal UI that displays key and interaction text when the player is within interaction range of an object.
|
||||
|
||||
## Files Created
|
||||
- `Assets/Scripts/InteractableModal.cs` - The modal UI component (simplified)
|
||||
- `Assets/Scripts/InteractableModalManager.cs` - Manages showing/hiding the modal
|
||||
|
||||
## Unity Setup Instructions
|
||||
|
||||
### 1. Create the Modal UI Prefab
|
||||
|
||||
#### Step 1: Create Canvas
|
||||
1. Right-click in Hierarchy → UI → Canvas
|
||||
2. Name it "InteractableModalCanvas"
|
||||
3. Set Canvas Scaler to "Scale With Screen Size"
|
||||
4. Set Reference Resolution to 1920x1080
|
||||
|
||||
#### Step 2: Create Modal Panel
|
||||
1. Right-click on Canvas → UI → Panel
|
||||
2. Name it "ModalPanel"
|
||||
3. Set Panel size (e.g., 200x60)
|
||||
4. Set background image (use panel-transparent-border-015.png from Assets/UI/)
|
||||
5. Set background color with alpha (e.g., dark gray with 0.8 alpha)
|
||||
|
||||
#### Step 3: Add Text Elements
|
||||
Under ModalPanel, create:
|
||||
|
||||
**Key Text:**
|
||||
- UI → TextMeshPro - Text
|
||||
- Name: "KeyText"
|
||||
- Position: Left side of panel
|
||||
- Font size: 32
|
||||
- Text: "E"
|
||||
- Alignment: Center
|
||||
- Color: Yellow or Orange
|
||||
|
||||
**Interact Text:**
|
||||
- UI → TextMeshPro - Text
|
||||
- Name: "InteractText"
|
||||
- Position: Right side of panel
|
||||
- Font size: 24
|
||||
- Text: "채광하기"
|
||||
- Alignment: Left
|
||||
- Color: White
|
||||
|
||||
#### Step 4: Add InteractableModal Component
|
||||
1. Add `InteractableModal` script to ModalPanel (or parent GameObject)
|
||||
2. Assign references in Inspector:
|
||||
- ModalPanel: The ModalPanel GameObject
|
||||
- KeyText: The KeyText TMP component
|
||||
- InteractText: The InteractText TMP component
|
||||
- Default Key: "E" (or your interaction key)
|
||||
|
||||
### 2. Setup on Player Object
|
||||
|
||||
#### Step 1: Add InteractableModalManager
|
||||
1. Select your Player prefab
|
||||
2. Add `InteractableModalManager` component
|
||||
3. Assign references:
|
||||
- InteractableModal: Reference to the modal GameObject
|
||||
- PlayerInteraction: Reference to PlayerInteraction component (should auto-find)
|
||||
|
||||
## Usage
|
||||
|
||||
The modal will automatically:
|
||||
1. Show when an interactable object (Resource, Building) is detected within range
|
||||
2. Display the key (default: "E") and interaction text
|
||||
3. Hide when no interactable is in range
|
||||
|
||||
## Example Display
|
||||
|
||||
When looking at a Resource:
|
||||
- Key: "E"
|
||||
- Text: "광석 채집"
|
||||
|
||||
When looking at a Building:
|
||||
- Key: "E"
|
||||
- Text: "건물 상호작용"
|
||||
|
||||
## Customization
|
||||
|
||||
### Change Key Text
|
||||
Modify `defaultKey` in Inspector or change `keyText.text` in code.
|
||||
|
||||
### Change Style
|
||||
Modify the TextMeshPro components:
|
||||
- Font size
|
||||
- Colors
|
||||
- Bold/Italic
|
||||
- Shadow/Outline
|
||||
|
||||
### Change Panel Size
|
||||
Adjust the ModalPanel RectTransform size and background.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**Modal not showing:**
|
||||
- Check if PlayerInteraction is detecting objects (debug ray should appear)
|
||||
- Verify InteractableModalManager is attached to player
|
||||
- Check if modal references are assigned in Inspector
|
||||
- Ensure modal starts as hidden (activeSelf = false in Start())
|
||||
|
||||
**Text not updating:**
|
||||
- Ensure IInteractable.GetInteractionPrompt() returns proper format: "[E] Text"
|
||||
- Check if _currentInteractable is being set in InteractableModal
|
||||
|
||||
**Layout issues:**
|
||||
- Check RectTransform anchors and pivots
|
||||
- Verify Panel is properly positioned on Canvas
|
||||
7
Assets/UI/INTERACTABLE_MODAL_SETUP.md.meta
Normal file
7
Assets/UI/INTERACTABLE_MODAL_SETUP.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20c1bf7cf8d809748b8e94e1b29bae2f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
396
Assets/UI/ModalPanel.prefab
Normal file
396
Assets/UI/ModalPanel.prefab
Normal file
@@ -0,0 +1,396 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &6332587651613424585
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4412526746668541195}
|
||||
- component: {fileID: 5249278849108589228}
|
||||
- component: {fileID: 8537118442092966596}
|
||||
- component: {fileID: 5999301040810221468}
|
||||
- component: {fileID: 8584080402260311703}
|
||||
m_Layer: 5
|
||||
m_Name: ModalPanel
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4412526746668541195
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6332587651613424585}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2331150165244547235}
|
||||
- {fileID: 1325989084779099817}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5249278849108589228
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6332587651613424585}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8537118442092966596
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6332587651613424585}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &5999301040810221468
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6332587651613424585}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Shadow
|
||||
m_EffectColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_EffectDistance: {x: 5, y: -5}
|
||||
m_UseGraphicAlpha: 1
|
||||
--- !u!114 &8584080402260311703
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6332587651613424585}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.HorizontalLayoutGroup
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 0
|
||||
m_Spacing: 0
|
||||
m_ChildForceExpandWidth: 0
|
||||
m_ChildForceExpandHeight: 0
|
||||
m_ChildControlWidth: 0
|
||||
m_ChildControlHeight: 0
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!1 &7018508494734430405
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2331150165244547235}
|
||||
- component: {fileID: 4201130398530889058}
|
||||
- component: {fileID: 3239286098141521726}
|
||||
m_Layer: 5
|
||||
m_Name: KeyText
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2331150165244547235
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7018508494734430405}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4412526746668541195}
|
||||
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: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4201130398530889058
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7018508494734430405}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3239286098141521726
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7018508494734430405}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: E
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 36
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 1
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_characterHorizontalScale: 1
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &7261205041914064396
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1325989084779099817}
|
||||
- component: {fileID: 6131174805353524192}
|
||||
- component: {fileID: 7839034454177399683}
|
||||
m_Layer: 5
|
||||
m_Name: InteractText
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1325989084779099817
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7261205041914064396}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4412526746668541195}
|
||||
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: 150, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6131174805353524192
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7261205041914064396}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7839034454177399683
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7261205041914064396}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: Mining
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 36
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_characterHorizontalScale: 1
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
7
Assets/UI/ModalPanel.prefab.meta
Normal file
7
Assets/UI/ModalPanel.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 274613c415998a647a86a5e09950ce41
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user