Skip to content

Commit 52bc41b

Browse files
committed
Integrate UI Toolkit HUD and update input handling
Added a new UI Toolkit-based HUD with building and unit buttons, styles, and controller logic. Refactored InputController to use GameHUDController for building selection and vehicle details, replacing previous button array logic. Updated Vehicle status reporting to include vehicle name. Scene updated to include new UI elements and references. Added TargetSelectSystem stub and UIElementsSchema files for future UI extensibility.
1 parent dca5f07 commit 52bc41b

39 files changed

+6651
-29
lines changed

Red Strike/Assets/InputController/InputController.cs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
using UnityEngine.UI;
44
using VehicleSystem;
55
using BuildingPlacement;
6+
using UI;
7+
using System.Linq;
68

79
namespace InputController
810
{
@@ -13,19 +15,14 @@ public class InputController : MonoBehaviour
1315
private Camera mainCamera;
1416
public BuildingsDatabase buildingsDatabase;
1517
private Dictionary<string, int> buildingCounts = new Dictionary<string, int>();
16-
public Button[] createBuildButtons;
1718
private Building selectedBuilding;
1819
private List<GameObject> placedObjects = new List<GameObject>();
1920
public float minDistanceBetweenObjects = 5f;
20-
public VehiclesDetailManager vehiclesDetailManager;
21+
public GameHUDController gameHUDController;
2122

2223
private void Start()
2324
{
2425
mainCamera = Camera.main;
25-
foreach (Button button in createBuildButtons)
26-
{
27-
button.onClick.AddListener(() => OnCreateBuildingButtonClicked(button));
28-
}
2926
}
3027

3128
private void Update()
@@ -85,6 +82,21 @@ private void PlaceBuilding()
8582
}
8683
}
8784

85+
public void SelectBuildingToPlace(string buildingName)
86+
{
87+
Building buildingToSelect = buildingsDatabase.buildings.FirstOrDefault(b => b.buildingName == buildingName);
88+
89+
if (buildingToSelect != null)
90+
{
91+
selectedBuilding = buildingToSelect;
92+
Debug.Log("Seçilen bina: " + selectedBuilding.buildingName + ". Yerleştirmek için araziye tıklayın.");
93+
}
94+
else
95+
{
96+
Debug.LogError(buildingName + " isminde bir bina veritabanında bulunamadı!");
97+
}
98+
}
99+
88100
private void SelectObject()
89101
{
90102
Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);
@@ -96,26 +108,16 @@ private void SelectObject()
96108

97109
if (clickedVehicle != null)
98110
{
99-
vehiclesDetailManager.UpdateVehicleDetails(clickedVehicle);
111+
gameHUDController.ShowVehicleDetails(clickedVehicle);
100112
}
101113
else
102114
{
103-
vehiclesDetailManager.HideDetailsPanel();
115+
gameHUDController.HideVehicleDetails();
104116
}
105117
}
106118
else
107119
{
108-
vehiclesDetailManager.HideDetailsPanel();
109-
}
110-
}
111-
112-
private void OnCreateBuildingButtonClicked(Button button)
113-
{
114-
int buttonIndex = System.Array.IndexOf(createBuildButtons, button);
115-
if (buttonIndex >= 0 && buttonIndex < buildingsDatabase.buildings.Count)
116-
{
117-
selectedBuilding = buildingsDatabase.buildings[buttonIndex];
118-
Debug.Log("Seçilen bina: " + selectedBuilding.buildingName + ". Yerleştirmek için araziye tıklayın.");
120+
gameHUDController.HideVehicleDetails();
119121
}
120122
}
121123

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
using UnityEngine;
2+
3+
namespace InputController
4+
{
5+
public class TargetSelectSystem : MonoBehaviour
6+
{
7+
}
8+
}

Red Strike/Assets/InputController/TargetSelectSystem.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Red Strike/Assets/Scenes/SampleScene.unity

Lines changed: 70 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,71 @@ MonoBehaviour:
10761076
m_LightCookieSize: {x: 1, y: 1}
10771077
m_LightCookieOffset: {x: 0, y: 0}
10781078
m_SoftShadowQuality: 1
1079+
--- !u!1 &422005010
1080+
GameObject:
1081+
m_ObjectHideFlags: 0
1082+
m_CorrespondingSourceObject: {fileID: 0}
1083+
m_PrefabInstance: {fileID: 0}
1084+
m_PrefabAsset: {fileID: 0}
1085+
serializedVersion: 6
1086+
m_Component:
1087+
- component: {fileID: 422005012}
1088+
- component: {fileID: 422005011}
1089+
- component: {fileID: 422005013}
1090+
m_Layer: 5
1091+
m_Name: UIDocument
1092+
m_TagString: Untagged
1093+
m_Icon: {fileID: 0}
1094+
m_NavMeshLayer: 0
1095+
m_StaticEditorFlags: 0
1096+
m_IsActive: 1
1097+
--- !u!114 &422005011
1098+
MonoBehaviour:
1099+
m_ObjectHideFlags: 0
1100+
m_CorrespondingSourceObject: {fileID: 0}
1101+
m_PrefabInstance: {fileID: 0}
1102+
m_PrefabAsset: {fileID: 0}
1103+
m_GameObject: {fileID: 422005010}
1104+
m_Enabled: 1
1105+
m_EditorHideFlags: 0
1106+
m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0}
1107+
m_Name:
1108+
m_EditorClassIdentifier:
1109+
m_PanelSettings: {fileID: 11400000, guid: 4d371fff1e2f90943bde16f9cfcff34a, type: 2}
1110+
m_ParentUI: {fileID: 0}
1111+
sourceAsset: {fileID: 9197481963319205126, guid: cd8da59dcd24b6741a617380d31cdce0, type: 3}
1112+
m_SortingOrder: 0
1113+
m_WorldSpaceSizeMode: 1
1114+
m_WorldSpaceWidth: 1920
1115+
m_WorldSpaceHeight: 1080
1116+
--- !u!4 &422005012
1117+
Transform:
1118+
m_ObjectHideFlags: 0
1119+
m_CorrespondingSourceObject: {fileID: 0}
1120+
m_PrefabInstance: {fileID: 0}
1121+
m_PrefabAsset: {fileID: 0}
1122+
m_GameObject: {fileID: 422005010}
1123+
serializedVersion: 2
1124+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1125+
m_LocalPosition: {x: 0, y: 0, z: 0}
1126+
m_LocalScale: {x: 1, y: 1, z: 1}
1127+
m_ConstrainProportionsScale: 0
1128+
m_Children: []
1129+
m_Father: {fileID: 0}
1130+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1131+
--- !u!114 &422005013
1132+
MonoBehaviour:
1133+
m_ObjectHideFlags: 0
1134+
m_CorrespondingSourceObject: {fileID: 0}
1135+
m_PrefabInstance: {fileID: 0}
1136+
m_PrefabAsset: {fileID: 0}
1137+
m_GameObject: {fileID: 422005010}
1138+
m_Enabled: 1
1139+
m_EditorHideFlags: 0
1140+
m_Script: {fileID: 11500000, guid: 1319797b3d6c7554099d236168d17075, type: 3}
1141+
m_Name:
1142+
m_EditorClassIdentifier:
1143+
inputController: {fileID: 1556403732}
10791144
--- !u!1 &460729958
10801145
GameObject:
10811146
m_ObjectHideFlags: 0
@@ -1088,7 +1153,7 @@ GameObject:
10881153
- component: {fileID: 460729961}
10891154
- component: {fileID: 460729960}
10901155
- component: {fileID: 460729959}
1091-
m_Layer: 0
1156+
m_Layer: 6
10921157
m_Name: Sphere
10931158
m_TagString: Untagged
10941159
m_Icon: {fileID: 0}
@@ -2176,7 +2241,7 @@ GameObject:
21762241
m_Icon: {fileID: 0}
21772242
m_NavMeshLayer: 0
21782243
m_StaticEditorFlags: 0
2179-
m_IsActive: 1
2244+
m_IsActive: 0
21802245
--- !u!114 &1153819851
21812246
MonoBehaviour:
21822247
m_ObjectHideFlags: 0
@@ -2911,7 +2976,7 @@ GameObject:
29112976
m_Icon: {fileID: 0}
29122977
m_NavMeshLayer: 0
29132978
m_StaticEditorFlags: 0
2914-
m_IsActive: 1
2979+
m_IsActive: 0
29152980
--- !u!114 &1346339273
29162981
MonoBehaviour:
29172982
m_ObjectHideFlags: 0
@@ -3825,12 +3890,8 @@ MonoBehaviour:
38253890
serializedVersion: 2
38263891
m_Bits: 64
38273892
buildingsDatabase: {fileID: 11400000, guid: 93b080ce34c08df468e7afea3e6569c6, type: 2}
3828-
createBuildButtons:
3829-
- {fileID: 562639787}
3830-
- {fileID: 884252640}
3831-
- {fileID: 1995478176}
38323893
minDistanceBetweenObjects: 25
3833-
vehiclesDetailManager: {fileID: 1560688344}
3894+
gameHUDController: {fileID: 422005013}
38343895
--- !u!1 &1560688343
38353896
GameObject:
38363897
m_ObjectHideFlags: 0
@@ -4841,3 +4902,4 @@ SceneRoots:
48414902
- {fileID: 1702380763}
48424903
- {fileID: 1556403731}
48434904
- {fileID: 1560688345}
4905+
- {fileID: 422005012}

Red Strike/Assets/UI Toolkit.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 19101, guid: 0000000000000000e000000000000000, type: 0}
13+
m_Name: PanelSettings
14+
m_EditorClassIdentifier:
15+
themeUss: {fileID: -4733365628477956816, guid: 077510ac2c139944c9d03abdfeaa15af, type: 3}
16+
m_DisableNoThemeWarning: 0
17+
m_TargetTexture: {fileID: 0}
18+
m_RenderMode: 0
19+
m_WorldSpaceLayer: 0
20+
m_ScaleMode: 1
21+
m_ReferenceSpritePixelsPerUnit: 100
22+
m_PixelsPerUnit: 100
23+
m_Scale: 1
24+
m_ReferenceDpi: 96
25+
m_FallbackDpi: 96
26+
m_ReferenceResolution: {x: 1200, y: 800}
27+
m_ScreenMatchMode: 0
28+
m_Match: 0
29+
m_SortingOrder: 0
30+
m_TargetDisplay: 0
31+
m_BindingLogLevel: 0
32+
m_ClearDepthStencil: 1
33+
m_ClearColor: 0
34+
m_ColorClearValue: {r: 0, g: 0, b: 0, a: 0}
35+
m_VertexBudget: 0
36+
m_DynamicAtlasSettings:
37+
m_MinAtlasSize: 64
38+
m_MaxAtlasSize: 4096
39+
m_MaxSubTextureSize: 64
40+
m_ActiveFilters: 31
41+
m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0}
42+
m_RuntimeShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0}
43+
m_RuntimeWorldShader: {fileID: 9102, guid: 0000000000000000f000000000000000, type: 0}
44+
m_SDFShader: {fileID: 19011, guid: 0000000000000000f000000000000000, type: 0}
45+
m_BitmapShader: {fileID: 9001, guid: 0000000000000000f000000000000000, type: 0}
46+
m_SpriteShader: {fileID: 19012, guid: 0000000000000000f000000000000000, type: 0}
47+
m_ICUDataAsset: {fileID: 0}
48+
forceGammaRendering: 0
49+
textSettings: {fileID: 0}

Red Strike/Assets/UI Toolkit/PanelSettings.asset.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Red Strike/Assets/UI Toolkit/UnityThemes.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import url("unity-theme://default");

Red Strike/Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)