diff --git a/Assets/Prefabs/TurretSlot.prefab b/Assets/Prefabs/TurretSlot.prefab new file mode 100644 index 0000000..cccc176 --- /dev/null +++ b/Assets/Prefabs/TurretSlot.prefab @@ -0,0 +1,125 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1661225059413378572 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8583516111923390659} + m_Layer: 0 + m_Name: TurretSlot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8583516111923390659 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1661225059413378572} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8637190438261622777} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6820201920342387708 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8637190438261622777} + - component: {fileID: 8572961899416546373} + m_Layer: 0 + m_Name: Square + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8637190438261622777 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6820201920342387708} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8583516111923390659} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &8572961899416546373 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6820201920342387708} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + 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: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + 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_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0.6226415, g: 0.6226415, b: 0.6226415, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/TurretSlot.prefab.meta b/Assets/Prefabs/TurretSlot.prefab.meta new file mode 100644 index 0000000..8fa2ef8 --- /dev/null +++ b/Assets/Prefabs/TurretSlot.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d17580f0491ab844c9603e7ccfaecef3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Ingame.unity b/Assets/Scenes/Ingame.unity index 6735890..a18e8ae 100644 --- a/Assets/Scenes/Ingame.unity +++ b/Assets/Scenes/Ingame.unity @@ -119,6 +119,211 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &284050133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 284050135} + - component: {fileID: 284050134} + m_Layer: 0 + m_Name: BackgroundOuterwall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &284050134 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284050133} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + 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: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + 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_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 0.4056604, g: 0.4056604, b: 0.4056604, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 +--- !u!4 &284050135 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284050133} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 15} + m_LocalScale: {x: 8, y: 8, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &527521560 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1661225059413378572, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_Name + value: TurretSlot (4) + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.x + value: 2.4748738 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.y + value: 2.4748738 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.92387956 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.z + value: -0.38268343 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -45 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} +--- !u!1001 &551444211 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1661225059413378572, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_Name + value: TurretSlot (3) + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.x + value: -3.5 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.z + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} --- !u!1 &575253889 GameObject: m_ObjectHideFlags: 0 @@ -153,6 +358,10 @@ MonoBehaviour: - {fileID: 1778835991} - {fileID: 747086635} - {fileID: 863852875} + twoTargetsChance: 0.25 + minSwitchDelay: 15 + maxSwitchDelay: 25 + equalDistanceTolerance: 0.1 --- !u!4 &575253891 Transform: m_ObjectHideFlags: 0 @@ -216,6 +425,63 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &703733312 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1661225059413378572, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_Name + value: TurretSlot + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.y + value: 3.5 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} --- !u!1 &747086634 GameObject: m_ObjectHideFlags: 0 @@ -240,13 +506,14 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 747086634} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -4, z: 0} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: -3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 1658941257} m_Father: {fileID: 1542019892} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} --- !u!1 &863852874 GameObject: m_ObjectHideFlags: 0 @@ -272,10 +539,11 @@ Transform: m_GameObject: {fileID: 863852874} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -4, y: 0, z: 0} + m_LocalPosition: {x: -3, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 2057986884} m_Father: {fileID: 1542019892} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1001524834 @@ -415,6 +683,97 @@ MonoBehaviour: m_VarianceClampScale: 0.9 m_ContrastAdaptiveSharpening: 0 m_Version: 2 +--- !u!1 &1268136263 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1268136264} + - component: {fileID: 1268136265} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1268136264 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268136263} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1778835991} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1268136265 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268136263} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + 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: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + 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_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 1, g: 0.6721439, b: 0, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 --- !u!1 &1542019891 GameObject: m_ObjectHideFlags: 0 @@ -450,6 +809,245 @@ Transform: - {fileID: 863852875} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1575467169 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1661225059413378572, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_Name + value: TurretSlot (1) + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.x + value: 3.5 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.z + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -90 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} +--- !u!1 &1658941256 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1658941257} + - component: {fileID: 1658941258} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1658941257 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658941256} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 747086635} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1658941258 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658941256} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + 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: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + 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_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 1, g: 0.6721439, b: 0, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 +--- !u!1 &1685194268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1685194269} + - component: {fileID: 1685194270} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1685194269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1685194268} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2066156711} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1685194270 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1685194268} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + 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: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + 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_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 1, g: 0.6721439, b: 0, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 --- !u!1 &1778835990 GameObject: m_ObjectHideFlags: 0 @@ -474,13 +1072,185 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1778835990} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 4, y: 0, z: 0} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 3, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 1268136264} m_Father: {fileID: 1542019892} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} +--- !u!1001 &1879215652 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1661225059413378572, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_Name + value: TurretSlot (6) + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.x + value: -2.474874 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.y + value: -2.474874 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.38268343 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.z + value: 0.92387956 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 135 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} +--- !u!1001 &1928859431 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1661225059413378572, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_Name + value: TurretSlot (7) + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.x + value: -2.474874 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.y + value: 2.4748738 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.92387956 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.z + value: 0.38268343 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 45 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} +--- !u!1001 &1955627545 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1661225059413378572, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_Name + value: TurretSlot (2) + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.y + value: -3.5 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 180 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} --- !u!1 &1974740236 GameObject: m_ObjectHideFlags: 0 @@ -567,11 +1337,102 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 10} - m_LocalScale: {x: 8, y: 8, z: 1} + m_LocalScale: {x: 6, y: 6, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2057986883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2057986884} + - component: {fileID: 2057986885} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2057986884 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2057986883} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 863852875} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} +--- !u!212 &2057986885 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2057986883} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + 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: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + 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_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 1, g: 0.6721439, b: 0, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 --- !u!1 &2066156710 GameObject: m_ObjectHideFlags: 0 @@ -597,18 +1458,85 @@ Transform: m_GameObject: {fileID: 2066156710} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 4, z: 0} + m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 1685194269} m_Father: {fileID: 1542019892} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &2123975554 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1661225059413378572, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_Name + value: TurretSlot (5) + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.x + value: 2.4748738 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.y + value: -2.474874 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.38268343 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalRotation.z + value: -0.92387956 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8583516111923390659, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -135 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d17580f0491ab844c9603e7ccfaecef3, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 1001524837} - {fileID: 1974740238} + - {fileID: 284050135} - {fileID: 575253891} - {fileID: 1542019892} - {fileID: 611220645} + - {fileID: 703733312} + - {fileID: 1575467169} + - {fileID: 1955627545} + - {fileID: 551444211} + - {fileID: 527521560} + - {fileID: 2123975554} + - {fileID: 1879215652} + - {fileID: 1928859431} diff --git a/Assets/Scripts/Enemy.cs b/Assets/Scripts/Enemy.cs index 34433f4..3abce4b 100644 --- a/Assets/Scripts/Enemy.cs +++ b/Assets/Scripts/Enemy.cs @@ -15,9 +15,10 @@ public class Enemy : MonoBehaviour, IMovementDirection // Wird von CharacterRotation verwendet. public Vector2 MovementDirection { get; private set; } - private void Start() + private void Awake() { - targetManager = FindFirstObjectByType(); + targetManager = + FindFirstObjectByType(); if (targetManager == null) { @@ -25,9 +26,31 @@ public class Enemy : MonoBehaviour, IMovementDirection "Enemy: Kein EnemyTargetManager gefunden!", this ); - - return; } + } + + private void OnEnable() + { + if (targetManager != null) + { + targetManager.OnTargetsChanged += + SelectClosestTarget; + } + } + + private void OnDisable() + { + if (targetManager != null) + { + targetManager.OnTargetsChanged -= + SelectClosestTarget; + } + } + + private void Start() + { + if (targetManager == null) + return; SelectClosestTarget(); } @@ -37,22 +60,27 @@ public class Enemy : MonoBehaviour, IMovementDirection if (targetManager == null) return; + // Kein aktuelles Ziel vorhanden. if (currentTarget == null) { MovementDirection = Vector2.zero; + SelectClosestTarget(); + return; } - // Falls das Ziel deaktiviert wurde: + // Das aktuelle Ziel wurde deaktiviert. if (!currentTarget.gameObject.activeInHierarchy) { SelectClosestTarget(); + return; } MoveTowardsTarget(); + // Ziel erreicht. if (HasReachedTarget()) { SelectClosestTarget(); @@ -61,8 +89,13 @@ public class Enemy : MonoBehaviour, IMovementDirection private void SelectClosestTarget() { + if (targetManager == null) + return; + currentTarget = - targetManager.GetClosestActiveTarget(transform.position); + targetManager.GetClosestActiveTarget( + transform.position + ); if (currentTarget == null) { @@ -72,6 +105,9 @@ public class Enemy : MonoBehaviour, IMovementDirection private void MoveTowardsTarget() { + if (currentTarget == null) + return; + Vector3 direction = currentTarget.position - transform.position; @@ -89,6 +125,9 @@ public class Enemy : MonoBehaviour, IMovementDirection private bool HasReachedTarget() { + if (currentTarget == null) + return false; + return Vector3.Distance( transform.position, currentTarget.position diff --git a/Assets/Scripts/EnemySpawner.cs b/Assets/Scripts/EnemySpawner.cs index ca028b9..e1d336b 100644 --- a/Assets/Scripts/EnemySpawner.cs +++ b/Assets/Scripts/EnemySpawner.cs @@ -46,7 +46,7 @@ public class EnemySpawner : MonoBehaviour { while (true) { - float delay = Random.Range( + float delay = UnityEngine.Random.Range( minSpawnDelay, maxSpawnDelay ); diff --git a/Assets/Scripts/EnemyTargetManager.cs b/Assets/Scripts/EnemyTargetManager.cs index 12cf736..7a5704c 100644 --- a/Assets/Scripts/EnemyTargetManager.cs +++ b/Assets/Scripts/EnemyTargetManager.cs @@ -1,45 +1,189 @@ +using System; +using System.Collections; using System.Collections.Generic; using UnityEngine; public class EnemyTargetManager : MonoBehaviour { + [Header("Target Points")] [SerializeField] private List targetPoints = new List(); + [Header("Active Target Chance")] + [SerializeField] + [Range(0f, 1f)] + private float twoTargetsChance = 0.25f; + + [Header("Switch Timing")] + [SerializeField] + private float minSwitchDelay = 15f; + + [SerializeField] + private float maxSwitchDelay = 25f; + + [Header("Target Selection")] + [SerializeField] + [Min(0f)] + private float equalDistanceTolerance = 0.1f; //In Unity-Einheiten! + + // Wird ausgelöst, wenn sich die aktiven Ziele ändern. + public event Action OnTargetsChanged; + + private void Start() + { + if (targetPoints.Count == 0) + { + Debug.LogError( + "EnemyTargetManager: Keine Target Points zugewiesen!", + this + ); + + return; + } + + if (targetPoints.Count < 2) + { + Debug.LogWarning( + "EnemyTargetManager: Es sind weniger als 2 Target Points vorhanden. Zwei aktive Targets sind dadurch nicht möglich.", + this + ); + } + + if (minSwitchDelay > maxSwitchDelay) + { + Debug.LogWarning( + "EnemyTargetManager: minSwitchDelay ist größer als maxSwitchDelay. Werte werden getauscht.", + this + ); + + float temp = minSwitchDelay; + minSwitchDelay = maxSwitchDelay; + maxSwitchDelay = temp; + } + + // Zu Beginn zufällig Targets aktivieren. + SetRandomActiveTargets(); + + // Danach regelmäßig wechseln. + StartCoroutine(TargetSwitchLoop()); + } + + private IEnumerator TargetSwitchLoop() + { + while (true) + { + float delay = UnityEngine.Random.Range( + minSwitchDelay, + maxSwitchDelay + ); + + yield return new WaitForSeconds(delay); + + SetRandomActiveTargets(); + } + } + + private void SetRandomActiveTargets() + { + // Zuerst alle Targets deaktivieren. + foreach (Transform target in targetPoints) + { + if (target != null) + { + target.gameObject.SetActive(false); + } + } + + // Entscheiden, ob 1 oder 2 Targets aktiv sein sollen. + int activeTargetCount = 1; + + if (targetPoints.Count >= 2 && + UnityEngine.Random.value < twoTargetsChance) + { + activeTargetCount = 2; + } + + // Alle gültigen Targets sammeln. + List availableTargets = + new List(); + + foreach (Transform target in targetPoints) + { + if (target != null) + { + availableTargets.Add(target); + } + } + + // Zufällige Targets aktivieren. + for (int i = 0; i < activeTargetCount; i++) + { + int randomIndex = UnityEngine.Random.Range( + 0, + availableTargets.Count + ); + + Transform target = + availableTargets[randomIndex]; + + target.gameObject.SetActive(true); + + // Verhindert doppelte Auswahl. + availableTargets.RemoveAt(randomIndex); + } + + // Alle Gegner informieren. + OnTargetsChanged?.Invoke(); + } + public Transform GetClosestActiveTarget(Vector3 position) { List closestTargets = new List(); - float closestDistanceSqr = float.MaxValue; + float closestDistance = float.MaxValue; foreach (Transform target in targetPoints) { - if (target == null || !target.gameObject.activeInHierarchy) - continue; - - float distanceSqr = - (target.position - position).sqrMagnitude; - - if (distanceSqr < closestDistanceSqr) + if (target == null || + !target.gameObject.activeInHierarchy) { - closestDistanceSqr = distanceSqr; + continue; + } + + // Tatsächliche Entfernung in Unity-Einheiten. + float distance = + Vector3.Distance( + position, + target.position + ); + + // Eindeutig näher als die bisher gefundenen Targets. + if (distance < + closestDistance - equalDistanceTolerance) + { + closestDistance = distance; closestTargets.Clear(); closestTargets.Add(target); } - else if (Mathf.Approximately( - distanceSqr, - closestDistanceSqr)) + // Innerhalb der eingestellten Toleranz: + // Dieses Target gilt als gleich nah. + else if (Mathf.Abs( + distance - closestDistance + ) <= equalDistanceTolerance) { closestTargets.Add(target); } } if (closestTargets.Count == 0) + { return null; + } - int randomIndex = Random.Range( + // Bei mehreren gleich nahen Targets zufällig wählen. + int randomIndex = UnityEngine.Random.Range( 0, closestTargets.Count );