diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 3cbb2e6..8527792 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -151,9 +151,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 717420202} - - {fileID: 2084477303} + m_Children: [] m_Father: {fileID: 1823752431} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -292,107 +290,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &506762748 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 126070286} - m_Modifications: - - target: {fileID: 1001252663500297335, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0.000015258789 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_SizeDelta.x - value: 65 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_SizeDelta.y - value: 70 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678507, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_Name - value: Item (1) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} --- !u!1 &519420028 GameObject: m_ObjectHideFlags: 0 @@ -407,6 +304,7 @@ GameObject: - component: {fileID: 519420030} - component: {fileID: 519420034} - component: {fileID: 519420033} + - component: {fileID: 519420035} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -552,6 +450,18 @@ Rigidbody2D: m_SleepingMode: 1 m_CollisionDetection: 0 m_Constraints: 4 +--- !u!114 &519420035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f6238252f2005474e93f24acf68a7409, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &619394800 GameObject: m_ObjectHideFlags: 0 @@ -662,11 +572,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!224 &717420202 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - m_PrefabInstance: {fileID: 1001252665194047746} - m_PrefabAsset: {fileID: 0} --- !u!1 &791134706 GameObject: m_ObjectHideFlags: 0 @@ -1170,109 +1075,3 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1823752430} m_CullTransparentMesh: 1 ---- !u!224 &2084477303 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - m_PrefabInstance: {fileID: 506762748} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &1001252665194047746 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 126070286} - m_Modifications: - - target: {fileID: 1001252663500297335, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0.000015258789 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_SizeDelta.x - value: 65 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_SizeDelta.y - value: 70 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678504, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1001252664493678507, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} - propertyPath: m_Name - value: Item - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3369f978a254e3d498f2a17276fbdfa4, type: 3} diff --git a/Assets/Scripts/GridSystem/GridBuildingSystem.cs b/Assets/Scripts/GridSystem/GridBuildingSystem.cs index bbf0793..914d979 100644 --- a/Assets/Scripts/GridSystem/GridBuildingSystem.cs +++ b/Assets/Scripts/GridSystem/GridBuildingSystem.cs @@ -239,6 +239,9 @@ public class GridBuildingSystem : MonoBehaviour #region PlacedObjectsTypeSO Methods public void DemolishPlacedObjectTypeSO(Vector3 position) { + if (selectedPlacedObjectTypeSO != null) + return; + GridObject gridObject = buildingGrid.GetGridObject(position); // Camera.main.ScreenToWorldPoint(Input.mousePosition) PlacedObject placedObject = gridObject.GetPlacedObject(); diff --git a/Assets/Scripts/Menus/BuildingMenu/BuildingMenu.cs b/Assets/Scripts/Menus/BuildingMenu/BuildingMenu.cs index 11672d0..227bcf7 100644 --- a/Assets/Scripts/Menus/BuildingMenu/BuildingMenu.cs +++ b/Assets/Scripts/Menus/BuildingMenu/BuildingMenu.cs @@ -18,7 +18,8 @@ public class BuildingMenu : Menu foreach (PlacedObjectTypeSO p in placedObectTypeSOList) { - GameObject item = Instantiate(itemPrefab, Vector3.zero, Quaternion.identity, itemListParent); + BuildingMenuItem item = Instantiate(itemPrefab, Vector3.zero, Quaternion.identity, itemListParent).GetComponent(); + item.SetPlacedObjectType(p); } } diff --git a/Assets/Scripts/Menus/BuildingMenu/BuildingMenuItem.cs b/Assets/Scripts/Menus/BuildingMenu/BuildingMenuItem.cs new file mode 100644 index 0000000..70baebd --- /dev/null +++ b/Assets/Scripts/Menus/BuildingMenu/BuildingMenuItem.cs @@ -0,0 +1,34 @@ +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class BuildingMenuItem : MonoBehaviour +{ + [SerializeField] PlacedObjectTypeSO placedObjectType; + + [SerializeField] TextMeshProUGUI nameText; + [SerializeField] Image image; + + public void SelectPlacedObjectType() + { + MenuManager.CloseAllMenus(); + GridBuildingSystem.instance.SelectPlacedObjectTypeSO(placedObjectType); + } + + private void UpdateItem() + { + nameText.text = placedObjectType.name; + image.sprite = placedObjectType.iconSprite; + } + + public void SetPlacedObjectType(PlacedObjectTypeSO newPlacedObjectType) + { + placedObjectType = newPlacedObjectType; + UpdateItem(); + } + + public PlacedObjectTypeSO GetPlacedObjectType() + { + return placedObjectType; + } +} diff --git a/Assets/Scripts/Menus/BuildingMenu/BuildingMenuItem.cs.meta b/Assets/Scripts/Menus/BuildingMenu/BuildingMenuItem.cs.meta new file mode 100644 index 0000000..871b679 --- /dev/null +++ b/Assets/Scripts/Menus/BuildingMenu/BuildingMenuItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7e64f31dcc5389143bfbd503c79ebaee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Menus/BuildingMenu/Item.prefab b/Assets/Scripts/Menus/BuildingMenu/Item.prefab index 3e1957c..5d2cd99 100644 --- a/Assets/Scripts/Menus/BuildingMenu/Item.prefab +++ b/Assets/Scripts/Menus/BuildingMenu/Item.prefab @@ -146,6 +146,8 @@ GameObject: - component: {fileID: 1001252664493678504} - component: {fileID: 1001252664493678510} - component: {fileID: 1001252664493678505} + - component: {fileID: -6979517058801678543} + - component: {fileID: 6909281088584444976} m_Layer: 5 m_Name: Item m_TagString: Untagged @@ -213,6 +215,77 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &-6979517058801678543 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1001252664493678507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e64f31dcc5389143bfbd503c79ebaee, type: 3} + m_Name: + m_EditorClassIdentifier: + placedObjectType: {fileID: 0} + nameText: {fileID: 1001252663500297332} + image: {fileID: 1001252664626742490} +--- !u!114 &6909281088584444976 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1001252664493678507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1001252664493678505} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: -6979517058801678543} + m_TargetAssemblyTypeName: BuildingMenuItem, Assembly-CSharp + m_MethodName: SelectPlacedObjectType + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!1 &1001252664626742484 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Menus/MenuManager.cs b/Assets/Scripts/Menus/MenuManager.cs index 6e1ef9b..86fe6f2 100644 --- a/Assets/Scripts/Menus/MenuManager.cs +++ b/Assets/Scripts/Menus/MenuManager.cs @@ -24,6 +24,18 @@ public class MenuManager : MonoBehaviour } } + public static bool AllMenusClosed() + { + foreach (Menu menu in MenuDictionary.instance.entries) + { + if (menu.isOpen) + { + return false; + } + } + return true; + } + private void Start() { CloseAllMenus(); diff --git a/Assets/Scripts/Player/PlayerController.cs b/Assets/Scripts/Player/PlayerController.cs new file mode 100644 index 0000000..efbd4b9 --- /dev/null +++ b/Assets/Scripts/Player/PlayerController.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +public class PlayerController : MonoBehaviour +{ + Camera cam; + + bool demolishMode = false; + + private void Start() + { + cam = gameObject.GetComponent(); + } + + void Update() + { + if (Input.GetButtonDown("Demolish")) + { + demolishMode = !demolishMode; + } + + if (demolishMode && Input.GetMouseButton(0) && MenuManager.AllMenusClosed()) + { + Vector3 postion = cam.ScreenToWorldPoint(Input.mousePosition); + GridBuildingSystem.instance.DemolishPlacedObjectTypeSO(postion); + } + } +} diff --git a/Assets/Scripts/Player/PlayerController.cs.meta b/Assets/Scripts/Player/PlayerController.cs.meta new file mode 100644 index 0000000..cd2600b --- /dev/null +++ b/Assets/Scripts/Player/PlayerController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6238252f2005474e93f24acf68a7409 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: