diff --git a/.claude/worktrees/dazzling-hoover-3d45a2/.claude/settings.local.json b/.claude/worktrees/dazzling-hoover-3d45a2/.claude/settings.local.json
index ac47b3d..b5a1a86 100644
--- a/.claude/worktrees/dazzling-hoover-3d45a2/.claude/settings.local.json
+++ b/.claude/worktrees/dazzling-hoover-3d45a2/.claude/settings.local.json
@@ -4,7 +4,9 @@
"Bash(grep -E \"\\\\.\\(prefab|fbx|controller\\)$\")",
"Bash(dir /s /b \"C:\\\\Users\\\\catos\\\\UnityTowerDefense\\\\*.md\")",
"Bash(findstr /v \"Library\\\\PackageCache\")",
- "Bash(dir \"C:\\\\Users\\\\catos\\\\UnityTowerDefense\" /a-d)"
+ "Bash(dir \"C:\\\\Users\\\\catos\\\\UnityTowerDefense\" /a-d)",
+ "Bash(mkdir -p \"C:\\\\Users\\\\catos\\\\UnityTowerDefense\\\\Assets\\\\_Project\\\\UI\")",
+ "Bash(mkdir -p \"C:\\\\Users\\\\catos\\\\UnityTowerDefense\\\\Assets\\\\_Project\\\\Scripts\\\\UI\")"
]
}
}
diff --git a/Assets/UI Toolkit.meta b/Assets/UI Toolkit.meta
new file mode 100644
index 0000000..0b883f3
--- /dev/null
+++ b/Assets/UI Toolkit.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 16af2c8f9644a2d43a61b66e4591081e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UI Toolkit/UnityThemes.meta b/Assets/UI Toolkit/UnityThemes.meta
new file mode 100644
index 0000000..8c8d62f
--- /dev/null
+++ b/Assets/UI Toolkit/UnityThemes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d7a4b3dca14ed5542bf0b20bc30efbb6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss b/Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss
new file mode 100644
index 0000000..1056e07
--- /dev/null
+++ b/Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss
@@ -0,0 +1 @@
+@import url("unity-theme://default");
\ No newline at end of file
diff --git a/Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss.meta b/Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss.meta
new file mode 100644
index 0000000..0421c74
--- /dev/null
+++ b/Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: b37fce804ca93da429eeb014b35d9cc2
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 12388, guid: 0000000000000000e000000000000000, type: 0}
+ disableValidation: 0
+ unsupportedSelectorAction: 0
diff --git a/Assets/_Project/Art/Textures/MinimapRT.renderTexture b/Assets/_Project/Art/Textures/MinimapRT.renderTexture
new file mode 100644
index 0000000..5f7d9fb
--- /dev/null
+++ b/Assets/_Project/Art/Textures/MinimapRT.renderTexture
@@ -0,0 +1,39 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!84 &8400000
+RenderTexture:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MinimapRT
+ m_ImageContentsHash:
+ serializedVersion: 2
+ Hash: 00000000000000000000000000000000
+ m_IsAlphaChannelOptional: 0
+ serializedVersion: 6
+ m_Width: 256
+ m_Height: 256
+ m_AntiAliasing: 1
+ m_MipCount: -1
+ m_DepthStencilFormat: 94
+ m_ColorFormat: 8
+ m_MipMap: 0
+ m_GenerateMips: 1
+ m_SRGB: 0
+ m_UseDynamicScale: 0
+ m_UseDynamicScaleExplicit: 0
+ m_BindMS: 0
+ m_EnableCompatibleFormat: 1
+ m_EnableRandomWrite: 0
+ m_TextureSettings:
+ serializedVersion: 2
+ m_FilterMode: 1
+ m_Aniso: 0
+ m_MipBias: 0
+ m_WrapU: 1
+ m_WrapV: 1
+ m_WrapW: 1
+ m_Dimension: 2
+ m_VolumeDepth: 1
+ m_ShadowSamplingMode: 2
diff --git a/Assets/_Project/Art/Textures/MinimapRT.renderTexture.meta b/Assets/_Project/Art/Textures/MinimapRT.renderTexture.meta
new file mode 100644
index 0000000..0d58917
--- /dev/null
+++ b/Assets/_Project/Art/Textures/MinimapRT.renderTexture.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e640b4de7a1dee049b38712e7eff82ea
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 8400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/_Project/Scenes/Levels/Main.unity b/Assets/_Project/Scenes/Levels/Main.unity
index 556cf36..69b7952 100644
--- a/Assets/_Project/Scenes/Levels/Main.unity
+++ b/Assets/_Project/Scenes/Levels/Main.unity
@@ -185,8 +185,8 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
- m_Size: {x: 20, y: 1, z: 34}
- m_Center: {x: -13.5, y: 0, z: 8.5}
+ m_Size: {x: 29, y: 1, z: 34}
+ m_Center: {x: -14, y: 0, z: 8.5}
--- !u!1 &167151707
GameObject:
m_ObjectHideFlags: 0
@@ -237,6 +237,134 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &260379225
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 260379229}
+ - component: {fileID: 260379228}
+ - component: {fileID: 260379226}
+ m_Layer: 0
+ m_Name: MinimapCamera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &260379226
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 260379225}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
+ m_RenderShadows: 1
+ m_RequiresDepthTextureOption: 2
+ m_RequiresOpaqueTextureOption: 2
+ m_CameraType: 0
+ m_Cameras: []
+ m_RendererIndex: -1
+ m_VolumeLayerMask:
+ serializedVersion: 2
+ m_Bits: 1
+ m_VolumeTrigger: {fileID: 0}
+ m_VolumeFrameworkUpdateModeOption: 2
+ m_RenderPostProcessing: 0
+ m_Antialiasing: 0
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_AllowXRRendering: 1
+ m_AllowHDROutput: 1
+ m_UseScreenCoordOverride: 0
+ m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_TaaSettings:
+ m_Quality: 3
+ m_FrameInfluence: 0.1
+ m_JitterScale: 1
+ m_MipBias: 0
+ m_VarianceClampScale: 0.9
+ m_ContrastAdaptiveSharpening: 0
+ m_Version: 2
+--- !u!20 &260379228
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 260379225}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 1
+ orthographic size: 80
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 983
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 8400000, guid: e640b4de7a1dee049b38712e7eff82ea, type: 2}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &260379229
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 260379225}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 14, y: 100, z: 39}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!1 &304575571
GameObject:
m_ObjectHideFlags: 0
@@ -745,6 +873,118 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!1 &643505902
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 643505906}
+ - component: {fileID: 643505905}
+ - component: {fileID: 643505904}
+ - component: {fileID: 643505903}
+ m_Layer: 7
+ m_Name: Cube (6)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &643505903
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 643505902}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &643505904
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 643505902}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &643505905
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 643505902}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &643505906
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 643505902}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: 0.70710576, z: -0, w: 0.70710784}
+ m_LocalPosition: {x: 4, y: 2, z: 41}
+ m_LocalScale: {x: 8, y: 5, z: 12.6126}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
--- !u!1 &832575517
GameObject:
m_ObjectHideFlags: 0
@@ -860,6 +1100,78 @@ BoxCollider:
serializedVersion: 3
m_Size: {x: 32, y: 0.5, z: 87}
m_Center: {x: 14.5, y: 0, z: 41}
+--- !u!1 &1058315973
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1058315976}
+ - component: {fileID: 1058315975}
+ - component: {fileID: 1058315974}
+ m_Layer: 0
+ m_Name: HUD
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1058315974
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1058315973}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1c69cd177f09f0c419288f73b49df886, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::TD.UI.HUDController
+ placementController: {fileID: 1597884411}
+ placementManager: {fileID: 1507514108}
+ minimapRenderTexture: {fileID: 8400000, guid: e640b4de7a1dee049b38712e7eff82ea, type: 2}
+ rejectionMessageDuration: 2.5
+--- !u!114 &1058315975
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1058315973}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.dll::UnityEngine.UIElements.UIDocument
+ m_PanelSettings: {fileID: 11400000, guid: 6aa0af71585acea4db4995c3931dc946, type: 2}
+ m_ParentUI: {fileID: 0}
+ sourceAsset: {fileID: 9197481963319205126, guid: eba711c1def2b194584102ceb5517c48, type: 3}
+ m_SortingOrder: 0
+ m_Position: 0
+ m_WorldSpaceSizeMode: 1
+ m_WorldSpaceWidth: 1920
+ m_WorldSpaceHeight: 1080
+ m_PivotReferenceSize: 0
+ m_Pivot: 0
+ m_WorldSpaceCollider: {fileID: 0}
+--- !u!4 &1058315976
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1058315973}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 16.40712, y: 52.13432, z: 9.76984}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1064792475
GameObject:
m_ObjectHideFlags: 0
@@ -928,8 +1240,8 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
- m_Size: {x: 6, y: 1, z: 1}
- m_Center: {x: 2, y: 0, z: 2}
+ m_Size: {x: 6, y: 1, z: 8}
+ m_Center: {x: 2, y: 0, z: -1.5}
--- !u!1 &1078485323
GameObject:
m_ObjectHideFlags: 0
@@ -957,7 +1269,7 @@ Transform:
m_GameObject: {fileID: 1078485323}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 27, y: 0, z: 36}
+ m_LocalPosition: {x: 13, y: 0, z: 38}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -977,7 +1289,7 @@ MonoBehaviour:
m_EditorClassIdentifier: Assembly-CSharp::TD.Levels.SpawnerVolume
owner: 2
spawnerIdInZone: 0
- spawnFacing: 3
+ spawnFacing: 1
placementValidity: 0
--- !u!65 &1078485326
BoxCollider:
@@ -998,8 +1310,8 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
- m_Size: {x: 7, y: 1, z: 6}
- m_Center: {x: 0, y: 0, z: 2}
+ m_Size: {x: 7, y: 1, z: 7}
+ m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &1222526236
GameObject:
m_ObjectHideFlags: 0
@@ -1129,7 +1441,7 @@ Transform:
m_GameObject: {fileID: 1360337262}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 13, y: 0, z: 3.5}
+ m_LocalPosition: {x: 13, y: 0, z: -3}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1441,7 +1753,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1597884408}
- m_Enabled: 1
+ m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea0e3a4681be19e4e9c359c1123bf68d, type: 3}
m_Name:
@@ -1711,7 +2023,7 @@ Transform:
m_GameObject: {fileID: 1975687919}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 24, y: 0, z: 37.75}
+ m_LocalPosition: {x: 24, y: 0, z: 31.25}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1750,7 +2062,7 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
- m_Size: {x: 19, y: 1, z: 34}
+ m_Size: {x: 29, y: 1, z: 34}
m_Center: {x: -10.5, y: 0, z: -13.5}
--- !u!1 &2024858685
GameObject:
@@ -1864,6 +2176,118 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2105067734
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2105067738}
+ - component: {fileID: 2105067737}
+ - component: {fileID: 2105067736}
+ - component: {fileID: 2105067735}
+ m_Layer: 7
+ m_Name: Cube (7)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &2105067735
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2105067734}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &2105067736
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2105067734}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &2105067737
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2105067734}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &2105067738
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2105067734}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: 0.70710576, z: -0, w: 0.70710784}
+ m_LocalPosition: {x: 24, y: 2, z: 41}
+ m_LocalScale: {x: 8, y: 5, z: 12.6126}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
@@ -1880,5 +2304,9 @@ SceneRoots:
- {fileID: 1239994224}
- {fileID: 2024858689}
- {fileID: 1949204945}
+ - {fileID: 643505906}
+ - {fileID: 2105067738}
- {fileID: 611926976}
- {fileID: 1222526238}
+ - {fileID: 1058315976}
+ - {fileID: 260379229}
diff --git a/Assets/_Project/Scenes/Levels/TestLevel.asset b/Assets/_Project/Scenes/Levels/TestLevel.asset
index 4444e15..5ab171e 100644
--- a/Assets/_Project/Scenes/Levels/TestLevel.asset
+++ b/Assets/_Project/Scenes/Levels/TestLevel.asset
@@ -18,15 +18,15 @@ MonoBehaviour:
Author: Matt
MapThumbnail: {fileID: 21300000, guid: d2e652d3e1c53454d80d3c1ec7888998, type: 3}
ScenePath: Assets/_Project/Scenes/Levels/Main.unity
- AuthoringHash: 18f981c8a12a79f122c2dad6fb2dab16c7921e01c9cd7bb6aed99d09d60ad2ac
- LastBakeTimestamp: 2026-05-06T02:41:47.3544992Z
+ AuthoringHash: 613b9977ac3706b8fe14b6bc0e37256512c8c8d890d3051a3969d210e802649c
+ LastBakeTimestamp: 2026-05-09T00:16:03.7794768Z
LastBakeOutcome: 1
LastBakeWarningCount: 2
GridOriginTile: {x: 0, y: 0}
GridSize: {x: 32, y: 87}
- PlacementGrid: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101020202020202020000000000010101010101010101010101010101010101010102020202020202000000000001010101010101010101010101010101010101010202020202020200000000000101010101010101010101010101010101010101020202020202020000000000010101010101010101010101010101010101010102020202020202000000000001010101010101010101010101010101010101010202020202020200000000000101010101010101010101010101010101010101020202020202020000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000
- WalkabilityGrid: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101010101010101010000000000010101010101010101010101010101010101010101010101010101000000000001010101010101010101010101010101010101010101010101010100000000000101010101010101010101010101010101010101010101010101010000000000010101010101010101010101010101010101010101010101010101000000000001010101010101010101010101010101010101010101010101010100000000000101010101010101010101010101010101010101010101010101010000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000
- OwnerGrid: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000020202020202020202020202020202020202020200000000000000000000000002020202020202020202020202020202020202020000000000000000000000000202020202020202020202020202020202020202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000010101010101010101010101010101010101010100000000000000000000000001010101010101010101010101010101010101010000000000000000000000000101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ PlacementGrid: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000000000000000000000000002020202020202000000000000000000000000000000000000000000000000000202020202020200000000000000000000000000000000000000000000000000020202020202020000000000000000000000000000
+ WalkabilityGrid: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000001010101010101010101010101010101010101010101010101010101010100000101010101010101010101010101010101010101010101010101010101010000010101010101010101010101010101010101010101010101010101010101000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000000000000000000000000001010101010101000000000000000000000000000000000000000000000000000101010101010100000000000000000000000000000000000000000000000000010101010101010000000000000000000000000000
+ OwnerGrid: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000002020202020202020202020202020202020202020202020202020202020200000202020202020202020202020202020202020202020202020202020202020000020202020202020202020202020202020202020202020202020202020202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000101010101010101010101010101010101010101010101010101010101000000010101010101010101010101010101010101010101010101010101010100000001010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
MapAreaGrid: 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101
PlayerZones:
- Owner: 1
@@ -87,6 +87,55 @@ MonoBehaviour:
LeakExits:
- Target: 2
TileArea:
+ - {x: 11, y: 37}
+ - {x: 12, y: 37}
+ - {x: 13, y: 37}
+ - {x: 14, y: 37}
+ - {x: 15, y: 37}
+ - {x: 16, y: 37}
+ - {x: 17, y: 37}
+ - {x: 11, y: 38}
+ - {x: 12, y: 38}
+ - {x: 13, y: 38}
+ - {x: 14, y: 38}
+ - {x: 15, y: 38}
+ - {x: 16, y: 38}
+ - {x: 17, y: 38}
+ - {x: 11, y: 39}
+ - {x: 12, y: 39}
+ - {x: 13, y: 39}
+ - {x: 14, y: 39}
+ - {x: 15, y: 39}
+ - {x: 16, y: 39}
+ - {x: 17, y: 39}
+ - {x: 11, y: 40}
+ - {x: 12, y: 40}
+ - {x: 13, y: 40}
+ - {x: 14, y: 40}
+ - {x: 15, y: 40}
+ - {x: 16, y: 40}
+ - {x: 17, y: 40}
+ - {x: 11, y: 41}
+ - {x: 12, y: 41}
+ - {x: 13, y: 41}
+ - {x: 14, y: 41}
+ - {x: 15, y: 41}
+ - {x: 16, y: 41}
+ - {x: 17, y: 41}
+ - {x: 11, y: 42}
+ - {x: 12, y: 42}
+ - {x: 13, y: 42}
+ - {x: 14, y: 42}
+ - {x: 15, y: 42}
+ - {x: 16, y: 42}
+ - {x: 17, y: 42}
+ - {x: 11, y: 43}
+ - {x: 12, y: 43}
+ - {x: 13, y: 43}
+ - {x: 14, y: 43}
+ - {x: 15, y: 43}
+ - {x: 16, y: 43}
+ - {x: 17, y: 43}
- {x: 11, y: 44}
- {x: 12, y: 44}
- {x: 13, y: 44}
@@ -105,79 +154,72 @@ MonoBehaviour:
- Owner: 2
Spawners:
- SpawnerIdInZone: 0
- TilePosition: {x: 28, y: 40}
+ TilePosition: {x: 14, y: 40}
TileArea:
- - {x: 25, y: 37}
- - {x: 26, y: 37}
- - {x: 27, y: 37}
- - {x: 28, y: 37}
- - {x: 29, y: 37}
- - {x: 30, y: 37}
- - {x: 31, y: 37}
- - {x: 25, y: 38}
- - {x: 26, y: 38}
- - {x: 27, y: 38}
- - {x: 28, y: 38}
- - {x: 29, y: 38}
- - {x: 30, y: 38}
- - {x: 31, y: 38}
- - {x: 25, y: 39}
- - {x: 26, y: 39}
- - {x: 27, y: 39}
- - {x: 28, y: 39}
- - {x: 29, y: 39}
- - {x: 30, y: 39}
- - {x: 31, y: 39}
- - {x: 25, y: 40}
- - {x: 26, y: 40}
- - {x: 27, y: 40}
- - {x: 28, y: 40}
- - {x: 29, y: 40}
- - {x: 30, y: 40}
- - {x: 31, y: 40}
- - {x: 25, y: 41}
- - {x: 26, y: 41}
- - {x: 27, y: 41}
- - {x: 28, y: 41}
- - {x: 29, y: 41}
- - {x: 30, y: 41}
- - {x: 31, y: 41}
- - {x: 25, y: 42}
- - {x: 26, y: 42}
- - {x: 27, y: 42}
- - {x: 28, y: 42}
- - {x: 29, y: 42}
- - {x: 30, y: 42}
- - {x: 31, y: 42}
- - {x: 25, y: 43}
- - {x: 26, y: 43}
- - {x: 27, y: 43}
- - {x: 28, y: 43}
- - {x: 29, y: 43}
- - {x: 30, y: 43}
- - {x: 31, y: 43}
- Facing: 3
+ - {x: 11, y: 37}
+ - {x: 12, y: 37}
+ - {x: 13, y: 37}
+ - {x: 14, y: 37}
+ - {x: 15, y: 37}
+ - {x: 16, y: 37}
+ - {x: 17, y: 37}
+ - {x: 11, y: 38}
+ - {x: 12, y: 38}
+ - {x: 13, y: 38}
+ - {x: 14, y: 38}
+ - {x: 15, y: 38}
+ - {x: 16, y: 38}
+ - {x: 17, y: 38}
+ - {x: 11, y: 39}
+ - {x: 12, y: 39}
+ - {x: 13, y: 39}
+ - {x: 14, y: 39}
+ - {x: 15, y: 39}
+ - {x: 16, y: 39}
+ - {x: 17, y: 39}
+ - {x: 11, y: 40}
+ - {x: 12, y: 40}
+ - {x: 13, y: 40}
+ - {x: 14, y: 40}
+ - {x: 15, y: 40}
+ - {x: 16, y: 40}
+ - {x: 17, y: 40}
+ - {x: 11, y: 41}
+ - {x: 12, y: 41}
+ - {x: 13, y: 41}
+ - {x: 14, y: 41}
+ - {x: 15, y: 41}
+ - {x: 16, y: 41}
+ - {x: 17, y: 41}
+ - {x: 11, y: 42}
+ - {x: 12, y: 42}
+ - {x: 13, y: 42}
+ - {x: 14, y: 42}
+ - {x: 15, y: 42}
+ - {x: 16, y: 42}
+ - {x: 17, y: 42}
+ - {x: 11, y: 43}
+ - {x: 12, y: 43}
+ - {x: 13, y: 43}
+ - {x: 14, y: 43}
+ - {x: 15, y: 43}
+ - {x: 16, y: 43}
+ - {x: 17, y: 43}
+ Facing: 1
LeakExits: []
Goals:
- TileArea:
- - {x: 11, y: 7}
- - {x: 12, y: 7}
- - {x: 13, y: 7}
- - {x: 14, y: 7}
- - {x: 15, y: 7}
- - {x: 16, y: 7}
- - {x: 17, y: 7}
- - {x: 11, y: 8}
- - {x: 12, y: 8}
- - {x: 13, y: 8}
- - {x: 14, y: 8}
- - {x: 15, y: 8}
- - {x: 16, y: 8}
- - {x: 17, y: 8}
- - {x: 11, y: 9}
- - {x: 12, y: 9}
- - {x: 13, y: 9}
- - {x: 14, y: 9}
- - {x: 15, y: 9}
- - {x: 16, y: 9}
- - {x: 17, y: 9}
+ - {x: 11, y: 1}
+ - {x: 12, y: 1}
+ - {x: 13, y: 1}
+ - {x: 14, y: 1}
+ - {x: 15, y: 1}
+ - {x: 16, y: 1}
+ - {x: 17, y: 1}
+ - {x: 11, y: 2}
+ - {x: 12, y: 2}
+ - {x: 13, y: 2}
+ - {x: 14, y: 2}
+ - {x: 15, y: 2}
+ - {x: 16, y: 2}
+ - {x: 17, y: 2}
diff --git a/Assets/_Project/Scenes/Levels/TestLevel_Thumbnail.png b/Assets/_Project/Scenes/Levels/TestLevel_Thumbnail.png
index d282ffc..69e9589 100644
--- a/Assets/_Project/Scenes/Levels/TestLevel_Thumbnail.png
+++ b/Assets/_Project/Scenes/Levels/TestLevel_Thumbnail.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3c98285c3a823f2942e9dff02edf75918e7336b4f1496570f2e32a2ffc80e55e
-size 8745
+oid sha256:57a63c71a6e777bc1d8852d8ba23b96474946cb7aa9b424f35a64cf7fd3149b4
+size 8744
diff --git a/Assets/_Project/Scripts/Gameplay/TowerPlacementManager.cs b/Assets/_Project/Scripts/Gameplay/TowerPlacementManager.cs
index 816a18b..82b6a6f 100644
--- a/Assets/_Project/Scripts/Gameplay/TowerPlacementManager.cs
+++ b/Assets/_Project/Scripts/Gameplay/TowerPlacementManager.cs
@@ -594,6 +594,22 @@ namespace TD.Gameplay
return TryGetDefinition(typeId, out var def) ? def : null;
}
+ ///
+ /// Enumerates all valid (definition, typeId) pairs from the current definition list.
+ /// TypeId 0 is reserved; valid entries start at index 1. Used by the HUD command grid
+ /// to populate tower buttons. Only meaningful on the instance — check Instance != null
+ /// before calling.
+ ///
+ public System.Collections.Generic.IEnumerable<(TowerDefinition def, int typeId)>
+ GetAvailableDefinitions()
+ {
+ for (int i = 1; i < towerDefinitions.Length; i++)
+ {
+ if (towerDefinitions[i] != null)
+ yield return (towerDefinitions[i], i);
+ }
+ }
+
///
/// Maps a client ID to the PlayerSlot assigned to that client.
///
diff --git a/Assets/_Project/Scripts/UI/HUDController.cs b/Assets/_Project/Scripts/UI/HUDController.cs
new file mode 100644
index 0000000..179aafd
--- /dev/null
+++ b/Assets/_Project/Scripts/UI/HUDController.cs
@@ -0,0 +1,321 @@
+// Assets/_Project/Scripts/UI/HUDController.cs
+using System.Collections;
+using UnityEngine;
+using UnityEngine.UIElements;
+using TD.Gameplay;
+using TD.Towers;
+
+namespace TD.UI
+{
+ ///
+ /// Drives the in-match HUD. Requires a UIDocument on the same GameObject.
+ /// Wires gold display, tower command grid, tooltip, rejection messages,
+ /// and minimap RenderTexture to their UI Toolkit counterparts.
+ ///
+ [RequireComponent(typeof(UIDocument))]
+ public class HUDController : MonoBehaviour
+ {
+ // ----- Inspector --------------------------------------------------
+
+ [Header("Scene References")]
+ [Tooltip("The local client's TowerPlacementController.")]
+ [SerializeField] private TowerPlacementController placementController;
+
+ [Tooltip("The TowerPlacementManager NetworkObject in the scene.")]
+ [SerializeField] private TowerPlacementManager placementManager;
+
+ [Header("Minimap")]
+ [Tooltip("RenderTexture that the minimap camera renders into.")]
+ [SerializeField] private RenderTexture minimapRenderTexture;
+
+ [Header("Settings")]
+ [SerializeField] private float rejectionMessageDuration = 2.5f;
+
+ // ----- Cached UI element references -------------------------------
+
+ private Label goldLabel;
+ private Label waveLabel;
+ private Label portraitName;
+ private VisualElement commandGrid;
+ private Label ttTitle;
+ private Label ttDesc;
+ private Label ttStats;
+ private Label ttCost;
+ private Label rejectionLabel;
+
+ // ----- State ------------------------------------------------------
+
+ private Coroutine rejectionFadeCoroutine;
+ private bool gridPopulated;
+ private bool uiInitialized;
+
+ // ----- Lifecycle --------------------------------------------------
+
+ private void Start()
+ {
+ // UIDocument creates its panel in OnEnable, which runs after all
+ // Awake() calls. Accessing rootVisualElement in Awake() is too early.
+ // Start() is safe because all OnEnable() calls have completed by then.
+ InitializeUI();
+ TryPopulateCommandGrid();
+ }
+
+ private void InitializeUI()
+ {
+ var doc = GetComponent();
+ if (doc == null)
+ {
+ Debug.LogError("[HUDController] No UIDocument component found.");
+ return;
+ }
+
+ var root = doc.rootVisualElement;
+ if (root == null)
+ {
+ Debug.LogError("[HUDController] rootVisualElement is null. " +
+ "Check that Panel Settings and Source Asset are assigned.");
+ return;
+ }
+
+ // Cache element references — log a warning for any that are missing
+ // so UXML/USS mismatches surface immediately.
+ goldLabel = Require