From e804e6bff6c626541c1552f8b65c7d676f5dec3d Mon Sep 17 00:00:00 2001 From: Gabriel Ksawery Skowron-Rodriguez Date: Tue, 17 May 2022 13:37:02 +0200 Subject: [PATCH] PlayerClickSystem fix and Soldier world position adjusted + PlayerClickSytem ++ now pass position of raycast hit not position of object iht + TilemapManager ++ added world space offset to place soldiers within the tile they stand at --- The project/Assets/Scenes/SpartaqS.unity | 139 +++++++++++++++++- .../Scripts/Player/PlayerClickSystem.cs | 5 +- The project/Assets/Scripts/TilemapManager.cs | 3 +- 3 files changed, 141 insertions(+), 6 deletions(-) diff --git a/The project/Assets/Scenes/SpartaqS.unity b/The project/Assets/Scenes/SpartaqS.unity index 28cffb63..6173ab56 100644 --- a/The project/Assets/Scenes/SpartaqS.unity +++ b/The project/Assets/Scenes/SpartaqS.unity @@ -280,6 +280,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2046204563} + - {fileID: 1175827543} m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -344,6 +345,7 @@ GameObject: - component: {fileID: 574213521} - component: {fileID: 574213520} - component: {fileID: 574213519} + - component: {fileID: 574213522} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -409,14 +411,47 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 574213518} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalRotation: {x: 0.38268343, y: 0, z: 0, w: 0.92387956} + m_LocalPosition: {x: 0, y: 5, z: -5} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 45, y: 0, z: 0} +--- !u!114 &574213522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574213518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + 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_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 --- !u!1 &816363136 GameObject: m_ObjectHideFlags: 0 @@ -535,6 +570,104 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 519502c6f18d5e44eb800aefd848a6e6, type: 3} +--- !u!1 &1175827542 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1175827543} + - component: {fileID: 1175827546} + - component: {fileID: 1175827545} + - component: {fileID: 1175827544} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1175827543 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1175827542} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274649403} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!64 &1175827544 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1175827542} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1175827545 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1175827542} + 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_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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1175827546 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1175827542} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1440849007 GameObject: m_ObjectHideFlags: 0 diff --git a/The project/Assets/Scripts/Player/PlayerClickSystem.cs b/The project/Assets/Scripts/Player/PlayerClickSystem.cs index 95012922..ba0f25c3 100644 --- a/The project/Assets/Scripts/Player/PlayerClickSystem.cs +++ b/The project/Assets/Scripts/Player/PlayerClickSystem.cs @@ -24,11 +24,12 @@ public class PlayerClickSystem : MonoBehaviour if (Physics.Raycast(ray, out hit)) { - Transform objectHit = hit.transform; + Vector3 hitWorldPosition = hit.point; + Debug.Log($"Hit at {hitWorldPosition}"); TilemapManager.Tile selectedTile; int x, y; - TilemapManager.TileState tileState = tilemapManager.GetTileFromWorldCoords(objectHit.position, out selectedTile, out x, out y); + TilemapManager.TileState tileState = tilemapManager.GetTileFromWorldCoords(hitWorldPosition, out selectedTile, out x, out y); if(tileState == TilemapManager.TileState.outOfBounds) { diff --git a/The project/Assets/Scripts/TilemapManager.cs b/The project/Assets/Scripts/TilemapManager.cs index b2826b6d..21c2739b 100644 --- a/The project/Assets/Scripts/TilemapManager.cs +++ b/The project/Assets/Scripts/TilemapManager.cs @@ -20,6 +20,7 @@ public class TilemapManager : MonoBehaviour [Header("Common Values")] [SerializeField] private Vector2Int mapSize = new Vector2Int(5,5); + [SerializeField] private Vector3 WORLD_SPACE_OFFSET = new Vector3(0.5f, 1f, 0.5f); [Header("Soldiers values")] @@ -81,7 +82,7 @@ public class TilemapManager : MonoBehaviour if (GetTileState(x, y) != TileState.free) return false; - tiles[x, y].standingSoldier = Instantiate(soldierPrefab, tilemap.CellToWorld(new Vector3Int(x, y, 0)), Quaternion.identity).GetComponent(); + tiles[x, y].standingSoldier = Instantiate(soldierPrefab, tilemap.CellToWorld(new Vector3Int(x, y, 0)) + WORLD_SPACE_OFFSET, Quaternion.identity).GetComponent(); if (tiles[x, y].standingSoldier != null) return true;