diff --git a/Assets/Prefabs/Bullet.prefab b/Assets/Prefabs/Bullet.prefab index 92f0f74..a5e46ad 100644 --- a/Assets/Prefabs/Bullet.prefab +++ b/Assets/Prefabs/Bullet.prefab @@ -13,6 +13,7 @@ GameObject: - component: {fileID: 6916749199650078309} - component: {fileID: 2578125575657415053} - component: {fileID: 6778915936728483955} + - component: {fileID: 2372079994149255709} m_Layer: 0 m_Name: Bullet m_TagString: Untagged @@ -133,3 +134,17 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!114 &2372079994149255709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 634305283682154916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69125b331043ed74c8631d9a8966bbbb, type: 3} + m_Name: + m_EditorClassIdentifier: + damage: 65 + lifespan: 5 diff --git a/Assets/Prefabs/enemyGun.prefab b/Assets/Prefabs/enemyGun.prefab new file mode 100644 index 0000000..d34ab16 --- /dev/null +++ b/Assets/Prefabs/enemyGun.prefab @@ -0,0 +1,1278 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &352175154695178830 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5600926003155382892} + - component: {fileID: 4811784748679403472} + - component: {fileID: 3921931654308496636} + m_Layer: 0 + m_Name: pCylinder9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5600926003155382892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 352175154695178830} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.078308105, y: 0.3005638, z: 0.7543335} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4811784748679403472 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 352175154695178830} + m_Mesh: {fileID: 3191843991455854740, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &3921931654308496636 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 352175154695178830} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &393469792480151230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7450769294663064201} + - component: {fileID: 4399316078565565955} + - component: {fileID: 7006400769205432604} + m_Layer: 0 + m_Name: barrel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7450769294663064201 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393469792480151230} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.16127396, z: 1.4985962} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4399316078565565955 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393469792480151230} + m_Mesh: {fileID: -2643173543783292932, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &7006400769205432604 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393469792480151230} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &431762038187551025 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1953846403385642888} + - component: {fileID: 6414510203100815995} + - component: {fileID: 4556303180761378938} + m_Layer: 0 + m_Name: upperHandGuard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1953846403385642888 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431762038187551025} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.2978058, z: 1.1634521} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6414510203100815995 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431762038187551025} + m_Mesh: {fileID: 4116760541611800120, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &4556303180761378938 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431762038187551025} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &504783793916288466 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4240492337292389509} + - component: {fileID: 4632470268941069692} + - component: {fileID: 2083322147064059240} + m_Layer: 0 + m_Name: sight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4240492337292389509 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 504783793916288466} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.32463455, z: 1.7954712} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4632470268941069692 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 504783793916288466} + m_Mesh: {fileID: -5255139396741013183, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &2083322147064059240 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 504783793916288466} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &1903334001548594563 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8969195892487355903} + - component: {fileID: 9131049191627644061} + - component: {fileID: 4483062776402177515} + m_Layer: 0 + m_Name: connector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8969195892487355903 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1903334001548594563} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.25196838, z: 0.78338623} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &9131049191627644061 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1903334001548594563} + m_Mesh: {fileID: 6331699949393592215, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &4483062776402177515 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1903334001548594563} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &2002591329277358064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1711031782685820461} + - component: {fileID: 608434376327957510} + - component: {fileID: 1695527067471757585} + m_Layer: 0 + m_Name: body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1711031782685820461 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002591329277358064} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.0014648438, y: 0.10227203, z: -0.21160889} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &608434376327957510 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002591329277358064} + m_Mesh: {fileID: -8545447256379345787, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &1695527067471757585 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002591329277358064} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &3256733481818731413 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1527464842209486219} + - component: {fileID: 7073835015673784636} + - component: {fileID: 5543788590406679922} + m_Layer: 0 + m_Name: mag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1527464842209486219 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3256733481818731413} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.0014648438, y: 0.10227203, z: -0.21160889} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7073835015673784636 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3256733481818731413} + m_Mesh: {fileID: -7371548420364037637, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &5543788590406679922 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3256733481818731413} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &3912322232318633615 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8158722186365934527} + - component: {fileID: 7473115974049695301} + - component: {fileID: 7770727259097659619} + m_Layer: 0 + m_Name: lowerHandGuard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8158722186365934527 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3912322232318633615} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.19859695, z: 0.64019775} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7473115974049695301 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3912322232318633615} + m_Mesh: {fileID: -93026142349622505, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &7770727259097659619 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3912322232318633615} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &3922298487389849311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6958526823809854691} + m_Layer: 0 + m_Name: gunModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6958526823809854691 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3922298487389849311} + 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: 7450769294663064201} + - {fileID: 1711031782685820461} + - {fileID: 8897904649621753109} + - {fileID: 4061915505682666442} + - {fileID: 8969195892487355903} + - {fileID: 5952390729242794329} + - {fileID: 1586392496564829850} + - {fileID: 4240492337292389509} + - {fileID: 1601292931010815637} + - {fileID: 8158722186365934527} + - {fileID: 1527464842209486219} + - {fileID: 3394396300854796239} + - {fileID: 2424025927640724705} + - {fileID: 5600926003155382892} + - {fileID: 1953846403385642888} + m_Father: {fileID: 4049575175909728394} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4424867631591570424 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4061915505682666442} + - component: {fileID: 6379343935018985233} + - component: {fileID: 3809052640467660771} + m_Layer: 0 + m_Name: chargingHandle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4061915505682666442 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4424867631591570424} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.0016479492, y: 0.2469368, z: 0.16625977} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6379343935018985233 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4424867631591570424} + m_Mesh: {fileID: 8513470538697225359, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &3809052640467660771 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4424867631591570424} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &6477937192916097585 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3667938079209885091} + m_Layer: 0 + m_Name: bullet spawn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3667938079209885091 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6477937192916097585} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.16204071, z: 1.776062} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4049575175909728394} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7931695571227507316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1586392496564829850} + - component: {fileID: 7361965105531518121} + - component: {fileID: 2157346081388109918} + m_Layer: 0 + m_Name: outerBarrel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1586392496564829850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7931695571227507316} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.16204071, z: 1.776062} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7361965105531518121 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7931695571227507316} + m_Mesh: {fileID: -8554965090681762719, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &2157346081388109918 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7931695571227507316} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &7938632458746094310 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4049575175909728394} + - component: {fileID: 6064497003828031006} + m_Layer: 0 + m_Name: enemyGun + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4049575175909728394 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7938632458746094310} + 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: 3667938079209885091} + - {fileID: 6958526823809854691} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6064497003828031006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7938632458746094310} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 18624a89c27eb0148ada0783bcd1a5ec, type: 3} + m_Name: + m_EditorClassIdentifier: + bullet: {fileID: 634305283682154916, guid: 0cdcaff5ba3a0694d9c72b9d52a715b2, type: 3} + magSize: 25 + damage: 10 + timeBtwShots: 0.8 + range: 60 + reloadTime: 5 + bulletsPerFire: 1 + automaticFire: 1 + fpsCam: {fileID: 0} + bulletSpawn: {fileID: 3667938079209885091} + allowInvoke: 1 + mag: {fileID: 3256733481818731413} +--- !u!1 &8170941306268412298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3394396300854796239} + - component: {fileID: 5979494891314552960} + - component: {fileID: 3491540512921626558} + m_Layer: 0 + m_Name: pistolGrip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3394396300854796239 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170941306268412298} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.020324707, z: -0.01184082} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5979494891314552960 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170941306268412298} + m_Mesh: {fileID: 4205433348937012685, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &3491540512921626558 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170941306268412298} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &8610090423908652874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8897904649621753109} + - component: {fileID: 2350752140675196099} + - component: {fileID: 6745068678394399354} + m_Layer: 0 + m_Name: buttStock + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8897904649621753109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8610090423908652874} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.0020751953, y: 0.19382858, z: -0.27026367} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2350752140675196099 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8610090423908652874} + m_Mesh: {fileID: -8960308224768940931, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &6745068678394399354 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8610090423908652874} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &8915486175941423406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5952390729242794329} + m_Layer: 0 + m_Name: front_sight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5952390729242794329 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8915486175941423406} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -0.6794815, z: 0.5611572} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &9082472695904690171 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1601292931010815637} + - component: {fileID: 7779447930816546479} + - component: {fileID: 5865114198426700862} + m_Layer: 0 + m_Name: gas_tube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1601292931010815637 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9082472695904690171} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.24972153, z: 1.2861938} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7779447930816546479 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9082472695904690171} + m_Mesh: {fileID: 489659322622250481, guid: 9aedb11bd32d30c469b7cf68dc632490, type: 3} +--- !u!23 &5865114198426700862 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9082472695904690171} + 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: 92bd7f3ca4f2e4b43b51c23af0bba5ff, 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!1 &9120277079391764956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2424025927640724705} + m_Layer: 0 + m_Name: rear_sight_assembly + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2424025927640724705 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9120277079391764956} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.3005638, z: 0.7543335} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6958526823809854691} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Prefabs/enemyGun.prefab.meta b/Assets/Prefabs/enemyGun.prefab.meta new file mode 100644 index 0000000..cda21fc --- /dev/null +++ b/Assets/Prefabs/enemyGun.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0cb9e1bb0725a89488a294c55923e082 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/gun.prefab b/Assets/Prefabs/gun.prefab index 77ed164..a82142b 100644 --- a/Assets/Prefabs/gun.prefab +++ b/Assets/Prefabs/gun.prefab @@ -589,7 +589,7 @@ Transform: m_GameObject: {fileID: 3366665043858970863} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 633.38696, y: 53.228, z: 712.275} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: diff --git a/Assets/Scenes/Terrain.unity b/Assets/Scenes/Terrain.unity index 0dd8889..c3090f0 100644 --- a/Assets/Scenes/Terrain.unity +++ b/Assets/Scenes/Terrain.unity @@ -377,6 +377,38 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 367155638} m_CullTransparentMesh: 1 +--- !u!1 &376520021 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 376520022} + m_Layer: 8 + m_Name: hand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &376520022 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376520021} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.569, y: 0, z: 0.253} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5722651808059730734} + m_Father: {fileID: 7523861224561778816} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &565925926 stripped GameObject: m_CorrespondingSourceObject: {fileID: 253673096910479318, guid: fcc3124eb1a35354d8faf61ffa67d814, @@ -406,7 +438,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &870943463 Transform: m_ObjectHideFlags: 0 @@ -430,7 +462,7 @@ VFXRenderer: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 870943462} - m_Enabled: 1 + m_Enabled: 0 m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 @@ -623,7 +655,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1084962702} - m_Layer: 8 + m_Layer: 7 m_Name: hand position m_TagString: Untagged m_Icon: {fileID: 0} @@ -760,6 +792,8 @@ MonoBehaviour: m_EditorClassIdentifier: playerCamera: {fileID: 781711374} seeDistance: 5 + CurrentGun: {fileID: 0} + holdingGun: {fileID: 0} hand: {fileID: 1084962701} --- !u!4 &1312533610 stripped Transform: @@ -812,6 +846,21 @@ PrefabInstance: propertyPath: SprintSpeed value: 20 objectReference: {fileID: 0} + - target: {fileID: 453084650579209855, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 2351121289802177058, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 2862278905431641492, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} - target: {fileID: 2862278905431641495, guid: 035bf1ba97d19214580cfe6f5a29fdc3, type: 3} propertyPath: CameraDistance @@ -827,6 +876,16 @@ PrefabInstance: propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 2862278905927073192, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 4253012990419024489, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} - target: {fileID: 4253012990419024491, guid: 035bf1ba97d19214580cfe6f5a29fdc3, type: 3} propertyPath: m_Enabled @@ -867,6 +926,11 @@ PrefabInstance: propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} + - target: {fileID: 5126527961139664765, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} - target: {fileID: 5126527961139664767, guid: 035bf1ba97d19214580cfe6f5a29fdc3, type: 3} propertyPath: field of view @@ -892,6 +956,11 @@ PrefabInstance: propertyPath: m_BackGroundColor.r value: 0 objectReference: {fileID: 0} + - target: {fileID: 5242107653240477476, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, type: 3} propertyPath: m_LocalPosition.x @@ -947,6 +1016,11 @@ PrefabInstance: propertyPath: m_Name value: NestedParent_Unpack objectReference: {fileID: 0} + - target: {fileID: 7094977340588366727, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} - target: {fileID: 7094977340588366727, guid: 035bf1ba97d19214580cfe6f5a29fdc3, type: 3} propertyPath: m_IsActive @@ -974,6 +1048,69 @@ PrefabInstance: insertIndex: -1 addedObject: {fileID: 1312533616} m_SourcePrefab: {fileID: 100100000, guid: 035bf1ba97d19214580cfe6f5a29fdc3, type: 3} +--- !u!1 &1560936834 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1560936836} + - component: {fileID: 1560936835} + m_Layer: 0 + m_Name: navMesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1560936835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560936834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a5ac11cc976e418e8d13136b07e1f52, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AgentTypeID: 0 + m_CollectObjects: 0 + m_Size: {x: 10, y: 10, z: 10} + m_Center: {x: 0, y: 2, z: 0} + m_LayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_UseGeometry: 0 + m_DefaultArea: 0 + m_GenerateLinks: 1 + m_IgnoreNavMeshAgent: 1 + m_IgnoreNavMeshObstacle: 1 + m_OverrideTileSize: 0 + m_TileSize: 256 + m_OverrideVoxelSize: 0 + m_VoxelSize: 0.16666667 + m_MinRegionArea: 2 + m_NavMeshData: {fileID: 23800000, guid: 9ce6c8e041f4a72418bd35bc47b82f64, type: 2} + m_BuildHeightMesh: 0 +--- !u!4 &1560936836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560936834} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 632.8, y: 53.06, z: 707.66} + 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 &1880143511 GameObject: m_ObjectHideFlags: 0 @@ -985,7 +1122,7 @@ GameObject: - component: {fileID: 1880143514} - component: {fileID: 1880143513} - component: {fileID: 1880143512} - m_Layer: 0 + m_Layer: 8 m_Name: Terrain m_TagString: Untagged m_Icon: {fileID: 0} @@ -1066,6 +1203,43 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1888931747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1888931748} + m_Layer: 8 + m_Name: refrence + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1888931748 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1888931747} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.373, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7523861224561778816} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4909242260980625812 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7938632458746094310, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + m_PrefabInstance: {fileID: 7852504279946953677} + m_PrefabAsset: {fileID: 0} --- !u!1001 &5691261327966626505 PrefabInstance: m_ObjectHideFlags: 0 @@ -1134,6 +1308,12 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5fb943f0c37a29e4ab9d29553d613711, type: 3} +--- !u!4 &5722651808059730734 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + m_PrefabInstance: {fileID: 7852504279946953677} + m_PrefabAsset: {fileID: 0} --- !u!1001 &6704506024639312884 PrefabInstance: m_ObjectHideFlags: 0 @@ -1185,7 +1365,7 @@ PrefabInstance: - target: {fileID: 2734560914043830869, guid: fcc3124eb1a35354d8faf61ffa67d814, type: 3} propertyPath: m_LocalRotation.w - value: 1 + value: 0.77285933 objectReference: {fileID: 0} - target: {fileID: 2734560914043830869, guid: fcc3124eb1a35354d8faf61ffa67d814, type: 3} @@ -1200,7 +1380,7 @@ PrefabInstance: - target: {fileID: 2734560914043830869, guid: fcc3124eb1a35354d8faf61ffa67d814, type: 3} propertyPath: m_LocalRotation.z - value: -0 + value: 0.63457745 objectReference: {fileID: 0} - target: {fileID: 2734560914043830869, guid: fcc3124eb1a35354d8faf61ffa67d814, type: 3} @@ -1215,7 +1395,7 @@ PrefabInstance: - target: {fileID: 2734560914043830869, guid: fcc3124eb1a35354d8faf61ffa67d814, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: 0 + value: 78.777 objectReference: {fileID: 0} - target: {fileID: 3366665043858970863, guid: fcc3124eb1a35354d8faf61ffa67d814, type: 3} @@ -1227,6 +1407,16 @@ PrefabInstance: propertyPath: mag value: objectReference: {fileID: 565925926} + - target: {fileID: 8616388319935238913, guid: fcc3124eb1a35354d8faf61ffa67d814, + type: 3} + propertyPath: fire + value: + objectReference: {fileID: 870943465} + - target: {fileID: 8616388319935238913, guid: fcc3124eb1a35354d8faf61ffa67d814, + type: 3} + propertyPath: range + value: 120 + objectReference: {fileID: 0} - target: {fileID: 8616388319935238913, guid: fcc3124eb1a35354d8faf61ffa67d814, type: 3} propertyPath: fpsCam @@ -1257,6 +1447,243 @@ Transform: type: 3} m_PrefabInstance: {fileID: 6704506024639312884} m_PrefabAsset: {fileID: 0} +--- !u!4 &7523861224561778816 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7523861224561778819} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 567.83887, y: 53.005142, z: 599.395} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 376520022} + - {fileID: 1888931748} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!136 &7523861224561778817 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7523861224561778819} + 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: 2 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &7523861224561778819 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7523861224561778816} + - component: {fileID: 7523861224561778831} + - component: {fileID: 7523861224561778830} + - component: {fileID: 7523861224561778817} + - component: {fileID: 7523861224561778833} + - component: {fileID: 7523861224561778834} + m_Layer: 8 + m_Name: Capsule + m_TagString: enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &7523861224561778830 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7523861224561778819} + 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: 6b911390c5825014e8377183a7837d3f, 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 &7523861224561778831 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7523861224561778819} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &7523861224561778833 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7523861224561778819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c199db931449c5a43aeac4001b086a95, type: 3} + m_Name: + m_EditorClassIdentifier: + agent: {fileID: 7523861224561778834} + player: {fileID: 1312533610} + groundMask: + serializedVersion: 2 + m_Bits: 256 + playerMask: + serializedVersion: 2 + m_Bits: 128 + health: 100 + WalkPoint: {x: 0, y: 0, z: 0} + walkRange: 25 + sightRange: 25 + attackRange: 15 + gun: {fileID: 4909242260980625812} +--- !u!195 &7523861224561778834 +NavMeshAgent: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7523861224561778819} + m_Enabled: 1 + m_AgentTypeID: 0 + m_Radius: 0.5 + m_Speed: 3.5 + m_Acceleration: 8 + avoidancePriority: 50 + m_AngularSpeed: 120 + m_StoppingDistance: 0 + m_AutoTraverseOffMeshLink: 1 + m_AutoBraking: 1 + m_AutoRepath: 1 + m_Height: 2 + m_BaseOffset: 1 + m_WalkableMask: 4294967295 + m_ObstacleAvoidanceType: 4 +--- !u!1001 &7852504279946953677 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 376520022} + m_Modifications: + - target: {fileID: 3270813210746987743, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_IsKinematic + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4049575175909728394, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6064497003828031006, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: fpsCam + value: + objectReference: {fileID: 1888931748} + - target: {fileID: 7938632458746094310, guid: 0cb9e1bb0725a89488a294c55923e082, + type: 3} + propertyPath: m_Name + value: enemyGun + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0cb9e1bb0725a89488a294c55923e082, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -1268,3 +1695,5 @@ SceneRoots: - {fileID: 6704506024639312884} - {fileID: 1326803979} - {fileID: 5691261327966626505} + - {fileID: 7523861224561778816} + - {fileID: 1560936836} diff --git a/Assets/Scenes/Terrain/NavMesh-navMesh.asset b/Assets/Scenes/Terrain/NavMesh-navMesh.asset new file mode 100644 index 0000000..f9fbae0 Binary files /dev/null and b/Assets/Scenes/Terrain/NavMesh-navMesh.asset differ diff --git a/Assets/Scenes/Terrain/NavMesh-navMesh.asset.meta b/Assets/Scenes/Terrain/NavMesh-navMesh.asset.meta new file mode 100644 index 0000000..f2440e1 --- /dev/null +++ b/Assets/Scenes/Terrain/NavMesh-navMesh.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ce6c8e041f4a72418bd35bc47b82f64 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 23800000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Bullet.cs b/Assets/Scripts/Bullet.cs new file mode 100644 index 0000000..5db1a35 --- /dev/null +++ b/Assets/Scripts/Bullet.cs @@ -0,0 +1,39 @@ +using System.Collections; +using System.Collections.Generic; +using Unity.VisualScripting; +using UnityEngine; + +public class BulletCollider : MonoBehaviour +{ + public int damage; + public float lifespan; + + void OnCollisionEnter(Collision other) + { + Debug.Log("nf"); + if (other.transform.tag == "Player") + { + GameManager.instance.damagePlayer(damage); + } + else if(other.transform.tag=="enemy") + { + other.transform.GetComponent().health-=damage; + if(other.transform.GetComponent().health<=0) + { + Destroy(other.gameObject); + } + } + } + void Update() + { + lifespan-=Time.deltaTime; + if(lifespan<=0) + { + killBullet(); + } + } + public void killBullet() + { + Destroy(gameObject); + } +} diff --git a/Assets/Scripts/Bullet.cs.meta b/Assets/Scripts/Bullet.cs.meta new file mode 100644 index 0000000..c209c91 --- /dev/null +++ b/Assets/Scripts/Bullet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69125b331043ed74c8631d9a8966bbbb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/CharactorControl.cs b/Assets/Scripts/CharactorControl.cs index 20b81bd..a864de8 100644 --- a/Assets/Scripts/CharactorControl.cs +++ b/Assets/Scripts/CharactorControl.cs @@ -13,10 +13,11 @@ public class CharacterControl : MonoBehaviour float seeDistance; Interactable curretInteractable; Pickable currentPickable; - Gun CurrentGun=null; + public GunPickable CurrentGun; + public GameObject holdingGun; public RaycastHit hitInfo; public static bool handsFull; - + [SerializeField] private GameObject hand; @@ -37,10 +38,7 @@ void Update() { Debug.Log(hitInfo.transform.name); if (hitInfo.transform.TryGetComponent(out curretInteractable)) { } - else if (hitInfo.transform.TryGetComponent(out currentPickable)) - { - if (hitInfo.transform.TryGetComponent(out CurrentGun)) { } - } + else if (hitInfo.transform.TryGetComponent(out currentPickable)) { } else { curretInteractable = null; @@ -63,6 +61,10 @@ void OnInteract() if (currentPickable != null) { currentPickable.PickUp(); + if (currentPickable.TryGetComponent(out CurrentGun)) + { + holdingGun = CurrentGun.gameObject; + } } } @@ -71,8 +73,7 @@ void OnShoot() Debug.Log("Shoot"); if (CurrentGun != null) { - - CurrentGun.Shoot(); + CurrentGun.GetComponent().Shoot(); } } @@ -80,7 +81,7 @@ void OnReload() { if (CurrentGun != null) { - CurrentGun.Reload(); + CurrentGun.GetComponent().Reload(); } } diff --git a/Assets/Scripts/EnemyAi.cs b/Assets/Scripts/EnemyAi.cs new file mode 100644 index 0000000..bf92545 --- /dev/null +++ b/Assets/Scripts/EnemyAi.cs @@ -0,0 +1,107 @@ +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using UnityEngine; +using UnityEngine.AI; + +public class EnemyAi : MonoBehaviour +{ + public NavMeshAgent agent; + public Transform player; + public LayerMask groundMask; + public LayerMask playerMask; + public int health = 100; + + /// + /// patrol variables + /// + public Vector3 WalkPoint; + private bool walkPointSet = false; + public float walkRange; + public float sightRange; + public float attackRange; + private bool playerInSightRange; + private bool playerInAttackRange; + public GameObject gun; + + + + void Update() + { + + //Check for sight and attack range + playerInSightRange = Physics.CheckSphere(transform.position, sightRange, playerMask); + playerInAttackRange = Physics.CheckSphere(transform.position, attackRange, playerMask); + + if (!playerInSightRange && !playerInAttackRange) + Patrol(); + if (playerInSightRange && !playerInAttackRange) + Chase(); + if (playerInAttackRange && playerInSightRange) + Attack(); + if (health <= 0) + { + Destroy(gameObject); + } + } + + private void Patrol() + { + Debug.Log("Patroling"); + if (!walkPointSet) + { + SeachWalkPoint(); + } + else + { + agent.SetDestination(WalkPoint); + } + ; + Vector3 distaceToWalk = transform.position - WalkPoint; + if (distaceToWalk.magnitude < 1f) + walkPointSet = false; + } + + private void SeachWalkPoint() + { + float randomZ = Random.Range(-walkRange, walkRange); + float randomX = Random.Range(-walkRange, walkRange); + + WalkPoint = new Vector3( + transform.position.x + randomX, + transform.position.y, + transform.position.z + randomZ + ); + + if (Physics.Raycast(WalkPoint, -transform.up, 2f, groundMask)) + { + walkPointSet = true; + } + } + + private void Chase() + { + Debug.Log("chasing"); + + agent.SetDestination(player.position); + } + + private void Attack() + { + Debug.Log("Attacking"); + + agent.SetDestination(transform.position); + + transform.LookAt(player); + + gun.GetComponent().Shoot(); + } + + private void OnDrawGizmosSelected() + { + Gizmos.color = Color.red; + Gizmos.DrawWireSphere(transform.position, attackRange); + Gizmos.color = Color.yellow; + Gizmos.DrawWireSphere(transform.position, sightRange); + } +} diff --git a/Assets/Scripts/EnemyAi.cs.meta b/Assets/Scripts/EnemyAi.cs.meta new file mode 100644 index 0000000..2123396 --- /dev/null +++ b/Assets/Scripts/EnemyAi.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c199db931449c5a43aeac4001b086a95 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index d001141..341c07c 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -19,4 +19,8 @@ void Awake() } } public int playerHealth = 100; + public void damagePlayer(int damage) + { + playerHealth-=damage; + } } diff --git a/Assets/Scripts/Gun.cs b/Assets/Scripts/Gun.cs index 892c05d..c01541f 100644 --- a/Assets/Scripts/Gun.cs +++ b/Assets/Scripts/Gun.cs @@ -53,16 +53,21 @@ public void Shoot() RaycastHit hit; Vector3 targetPoint; if (Physics.Raycast(ray, out hit)) - {targetPoint = hit.point;} + { + targetPoint = hit.point; + } else - {targetPoint = ray.GetPoint(150);} - + { + targetPoint = ray.GetPoint(150); + } + Vector3 direction = targetPoint - bulletSpawn.position; GameObject currentBullet = Instantiate( bullet, bulletSpawn.position, Quaternion.identity ); + currentBullet.GetComponent().damage = damage; currentBullet.transform.forward = direction.normalized; currentBullet .GetComponent() @@ -78,11 +83,12 @@ public void Shoot() void Update() { - if(bulletsLeft == 0) + if (bulletsLeft == 0) { Reload(); } } + private void ResetShot() { //Allow shooting and invoking again diff --git a/Assets/Scripts/enemyGun.cs b/Assets/Scripts/enemyGun.cs new file mode 100644 index 0000000..97a5d77 --- /dev/null +++ b/Assets/Scripts/enemyGun.cs @@ -0,0 +1,106 @@ +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; + +public class enemyGun : MonoBehaviour +{ + public GameObject bullet; + + /// + /// gun stats + /// + public int magSize; + public int damage; + public float timeBtwShots; + public float range; + public float reloadTime; + public int bulletsPerFire; + public bool automaticFire; + + /// + /// gun status + /// + private bool reloading; + private bool shooting; + private bool readyToShot; + private int bulletsLeft; + + /// + /// Refrencing + /// + [SerializeField] + Transform fpsCam; + public Transform bulletSpawn; + + public bool allowInvoke = true; + + [SerializeField] + private GameObject mag; + + void Awake() + { + bulletsLeft = magSize; + readyToShot = true; + } + + public void Shoot() + { + if (readyToShot && !reloading && bulletsLeft > 0) + { + Debug.Log("Bang"); + readyToShot=false; + + GameObject currentBullet = Instantiate( + bullet, + bulletSpawn.position, + Quaternion.identity + ); + currentBullet.GetComponent().damage=damage; + currentBullet + .GetComponent() + .AddForce(transform.forward * range, ForceMode.Impulse); + bulletsLeft--; + if (allowInvoke) + { + Invoke("ResetShot", timeBtwShots); + allowInvoke = false; + } + } + } + + + void Update() + { + if(bulletsLeft == 0) + { + Reload(); + } + } + private void ResetShot() + { + //Allow shooting and invoking again + readyToShot = true; + allowInvoke = true; + } + + public void Reload() + { + if (bulletsLeft < magSize && !reloading) + { + Debug.Log("reload"); + reloading = true; + readyToShot = false; + Invoke("Reloaded", reloadTime); + mag.SetActive(false); + } + } + + void Reloaded() + { + reloading = false; + readyToShot = true; + bulletsLeft = magSize; + mag.SetActive(true); + } +} diff --git a/Assets/Scripts/enemyGun.cs.meta b/Assets/Scripts/enemyGun.cs.meta new file mode 100644 index 0000000..f07f686 --- /dev/null +++ b/Assets/Scripts/enemyGun.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 18624a89c27eb0148ada0783bcd1a5ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs index 9f27dfb..d68cf3b 100644 --- a/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs @@ -5,264 +5,329 @@ namespace StarterAssets { - [RequireComponent(typeof(CharacterController))] + [RequireComponent(typeof(CharacterController))] #if ENABLE_INPUT_SYSTEM - [RequireComponent(typeof(PlayerInput))] + [RequireComponent(typeof(PlayerInput))] #endif - public class FirstPersonController : MonoBehaviour - { - [Header("Player")] - [Tooltip("Move speed of the character in m/s")] - public float MoveSpeed = 4.0f; - [Tooltip("Sprint speed of the character in m/s")] - public float SprintSpeed = 6.0f; - [Tooltip("Rotation speed of the character")] - public float RotationSpeed = 1.0f; - [Tooltip("Acceleration and deceleration")] - public float SpeedChangeRate = 10.0f; + public class FirstPersonController : MonoBehaviour + { + [Header("Player")] + [Tooltip("Move speed of the character in m/s")] + public float MoveSpeed = 4.0f; - [Space(10)] - [Tooltip("The height the player can jump")] - public float JumpHeight = 1.2f; - [Tooltip("The character uses its own gravity value. The engine default is -9.81f")] - public float Gravity = -15.0f; + [Tooltip("Sprint speed of the character in m/s")] + public float SprintSpeed = 6.0f; - [Space(10)] - [Tooltip("Time required to pass before being able to jump again. Set to 0f to instantly jump again")] - public float JumpTimeout = 0.1f; - [Tooltip("Time required to pass before entering the fall state. Useful for walking down stairs")] - public float FallTimeout = 0.15f; + [Tooltip("Rotation speed of the character")] + public float RotationSpeed = 1.0f; - [Header("Player Grounded")] - [Tooltip("If the character is grounded or not. Not part of the CharacterController built in grounded check")] - public bool Grounded = true; - [Tooltip("Useful for rough ground")] - public float GroundedOffset = -0.14f; - [Tooltip("The radius of the grounded check. Should match the radius of the CharacterController")] - public float GroundedRadius = 0.5f; - [Tooltip("What layers the character uses as ground")] - public LayerMask GroundLayers; + [Tooltip("Acceleration and deceleration")] + public float SpeedChangeRate = 10.0f; - [Header("Cinemachine")] - [Tooltip("The follow target set in the Cinemachine Virtual Camera that the camera will follow")] - public GameObject CinemachineCameraTarget; - [Tooltip("How far in degrees can you move the camera up")] - public float TopClamp = 90.0f; - [Tooltip("How far in degrees can you move the camera down")] - public float BottomClamp = -90.0f; + [Space(10)] + [Tooltip("The height the player can jump")] + public float JumpHeight = 1.2f; - // cinemachine - private float _cinemachineTargetPitch; + [Tooltip("The character uses its own gravity value. The engine default is -9.81f")] + public float Gravity = -15.0f; - // player - private float _speed; - private float _rotationVelocity; - private float _verticalVelocity; - private float _terminalVelocity = 53.0f; + [Space(10)] + [Tooltip( + "Time required to pass before being able to jump again. Set to 0f to instantly jump again" + )] + public float JumpTimeout = 0.1f; - // timeout deltatime - private float _jumpTimeoutDelta; - private float _fallTimeoutDelta; + [Tooltip( + "Time required to pass before entering the fall state. Useful for walking down stairs" + )] + public float FallTimeout = 0.15f; + + [Header("Player Grounded")] + [Tooltip( + "If the character is grounded or not. Not part of the CharacterController built in grounded check" + )] + public bool Grounded = true; + + [Tooltip("Useful for rough ground")] + public float GroundedOffset = -0.14f; + + [Tooltip( + "The radius of the grounded check. Should match the radius of the CharacterController" + )] + public float GroundedRadius = 0.5f; + + [Tooltip("What layers the character uses as ground")] + public LayerMask GroundLayers; + + [Header("Cinemachine")] + [Tooltip( + "The follow target set in the Cinemachine Virtual Camera that the camera will follow" + )] + public GameObject CinemachineCameraTarget; + + [Tooltip("How far in degrees can you move the camera up")] + public float TopClamp = 90.0f; + + [Tooltip("How far in degrees can you move the camera down")] + public float BottomClamp = -90.0f; + + // cinemachine + private float _cinemachineTargetPitch; + + // player + private float _speed; + private float _rotationVelocity; + private float _verticalVelocity; + private float _terminalVelocity = 53.0f; + + // timeout deltatime + private float _jumpTimeoutDelta; + private float _fallTimeoutDelta; - #if ENABLE_INPUT_SYSTEM - private PlayerInput _playerInput; + private PlayerInput _playerInput; #endif - private CharacterController _controller; - private StarterAssetsInputs _input; - private GameObject _mainCamera; + private CharacterController _controller; + private StarterAssetsInputs _input; + private GameObject _mainCamera; - private const float _threshold = 0.01f; + private const float _threshold = 0.01f; - private bool IsCurrentDeviceMouse - { - get - { - #if ENABLE_INPUT_SYSTEM - return _playerInput.currentControlScheme == "KeyboardMouse"; - #else - return false; - #endif - } - } - - private void Awake() - { - // get a reference to our main camera - if (_mainCamera == null) - { - _mainCamera = GameObject.FindGameObjectWithTag("MainCamera"); - } - } - - private void Start() - { - _controller = GetComponent(); - _input = GetComponent(); + private bool IsCurrentDeviceMouse + { + get + { #if ENABLE_INPUT_SYSTEM - _playerInput = GetComponent(); + return _playerInput.currentControlScheme == "KeyboardMouse"; #else - Debug.LogError( "Starter Assets package is missing dependencies. Please use Tools/Starter Assets/Reinstall Dependencies to fix it"); + return false; +#endif + } + } + + private void Awake() + { + // get a reference to our main camera + if (_mainCamera == null) + { + _mainCamera = GameObject.FindGameObjectWithTag("MainCamera"); + } + } + + private void Start() + { + _controller = GetComponent(); + _input = GetComponent(); +#if ENABLE_INPUT_SYSTEM + _playerInput = GetComponent(); +#else + Debug.LogError( + "Starter Assets package is missing dependencies. Please use Tools/Starter Assets/Reinstall Dependencies to fix it" + ); #endif - // reset our timeouts on start - _jumpTimeoutDelta = JumpTimeout; - _fallTimeoutDelta = FallTimeout; - } + // reset our timeouts on start + _jumpTimeoutDelta = JumpTimeout; + _fallTimeoutDelta = FallTimeout; + } - private void Update() - { - JumpAndGravity(); - GroundedCheck(); - Move(); - } + private void Update() + { + JumpAndGravity(); + GroundedCheck(); + Move(); + } - private void LateUpdate() - { - CameraRotation(); - } + private void LateUpdate() + { + CameraRotation(); + } - private void GroundedCheck() - { - // set sphere position, with offset - Vector3 spherePosition = new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z); - Grounded = Physics.CheckSphere(spherePosition, GroundedRadius, GroundLayers, QueryTriggerInteraction.Ignore); - } + private void GroundedCheck() + { + // set sphere position, with offset + Vector3 spherePosition = new Vector3( + transform.position.x, + transform.position.y - GroundedOffset, + transform.position.z + ); + Grounded = Physics.CheckSphere( + spherePosition, + GroundedRadius, + GroundLayers, + QueryTriggerInteraction.Ignore + ); + } - private void CameraRotation() - { - // if there is an input - if (_input.look.sqrMagnitude >= _threshold) - { - //Don't multiply mouse input by Time.deltaTime - float deltaTimeMultiplier = IsCurrentDeviceMouse ? 1.0f : Time.deltaTime; - - _cinemachineTargetPitch += _input.look.y * RotationSpeed * deltaTimeMultiplier; - _rotationVelocity = _input.look.x * RotationSpeed * deltaTimeMultiplier; + private void CameraRotation() + { + // if there is an input + if (_input.look.sqrMagnitude >= _threshold) + { + //Don't multiply mouse input by Time.deltaTime + float deltaTimeMultiplier = IsCurrentDeviceMouse ? 1.0f : Time.deltaTime; - // clamp our pitch rotation - _cinemachineTargetPitch = ClampAngle(_cinemachineTargetPitch, BottomClamp, TopClamp); + _cinemachineTargetPitch += _input.look.y * RotationSpeed * deltaTimeMultiplier; + _rotationVelocity = _input.look.x * RotationSpeed * deltaTimeMultiplier; - // Update Cinemachine camera target pitch - CinemachineCameraTarget.transform.localRotation = Quaternion.Euler(_cinemachineTargetPitch, 0.0f, 0.0f); + // clamp our pitch rotation + _cinemachineTargetPitch = ClampAngle( + _cinemachineTargetPitch, + BottomClamp, + TopClamp + ); - // rotate the player left and right - transform.Rotate(Vector3.up * _rotationVelocity); - } - } + // Update Cinemachine camera target pitch + CinemachineCameraTarget.transform.localRotation = Quaternion.Euler( + _cinemachineTargetPitch, + 0.0f, + 0.0f + ); - private void Move() - { - // set target speed based on move speed, sprint speed and if sprint is pressed - float targetSpeed = _input.sprint ? SprintSpeed : MoveSpeed; + // rotate the player left and right + transform.Rotate(Vector3.up * _rotationVelocity); + } + } - // a simplistic acceleration and deceleration designed to be easy to remove, replace, or iterate upon + private void Move() + { + // set target speed based on move speed, sprint speed and if sprint is pressed + float targetSpeed = _input.sprint ? SprintSpeed : MoveSpeed; - // note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude - // if there is no input, set the target speed to 0 - if (_input.move == Vector2.zero) targetSpeed = 0.0f; + // a simplistic acceleration and deceleration designed to be easy to remove, replace, or iterate upon - // a reference to the players current horizontal velocity - float currentHorizontalSpeed = new Vector3(_controller.velocity.x, 0.0f, _controller.velocity.z).magnitude; + // note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude + // if there is no input, set the target speed to 0 + if (_input.move == Vector2.zero) + targetSpeed = 0.0f; - float speedOffset = 0.1f; - float inputMagnitude = _input.analogMovement ? _input.move.magnitude : 1f; + // a reference to the players current horizontal velocity + float currentHorizontalSpeed = new Vector3( + _controller.velocity.x, + 0.0f, + _controller.velocity.z + ).magnitude; - // accelerate or decelerate to target speed - if (currentHorizontalSpeed < targetSpeed - speedOffset || currentHorizontalSpeed > targetSpeed + speedOffset) - { - // creates curved result rather than a linear one giving a more organic speed change - // note T in Lerp is clamped, so we don't need to clamp our speed - _speed = Mathf.Lerp(currentHorizontalSpeed, targetSpeed * inputMagnitude, Time.deltaTime * SpeedChangeRate); + float speedOffset = 0.1f; + float inputMagnitude = _input.analogMovement ? _input.move.magnitude : 1f; - // round speed to 3 decimal places - _speed = Mathf.Round(_speed * 1000f) / 1000f; - } - else - { - _speed = targetSpeed; - } + // accelerate or decelerate to target speed + if ( + currentHorizontalSpeed < targetSpeed - speedOffset + || currentHorizontalSpeed > targetSpeed + speedOffset + ) + { + // creates curved result rather than a linear one giving a more organic speed change + // note T in Lerp is clamped, so we don't need to clamp our speed + _speed = Mathf.Lerp( + currentHorizontalSpeed, + targetSpeed * inputMagnitude, + Time.deltaTime * SpeedChangeRate + ); - // normalise input direction - Vector3 inputDirection = new Vector3(_input.move.x, 0.0f, _input.move.y).normalized; + // round speed to 3 decimal places + _speed = Mathf.Round(_speed * 1000f) / 1000f; + } + else + { + _speed = targetSpeed; + } - // note: Vector2's != operator uses approximation so is not floating point error prone, and is cheaper than magnitude - // if there is a move input rotate player when the player is moving - if (_input.move != Vector2.zero) - { - // move - inputDirection = transform.right * _input.move.x + transform.forward * _input.move.y; - } + // normalise input direction + Vector3 inputDirection = new Vector3(_input.move.x, 0.0f, _input.move.y).normalized; - // move the player - _controller.Move(inputDirection.normalized * (_speed * Time.deltaTime) + new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime); - } + // note: Vector2's != operator uses approximation so is not floating point error prone, and is cheaper than magnitude + // if there is a move input rotate player when the player is moving + if (_input.move != Vector2.zero) + { + // move + inputDirection = + transform.right * _input.move.x + transform.forward * _input.move.y; + } - private void JumpAndGravity() - { - if (Grounded) - { - // reset the fall timeout timer - _fallTimeoutDelta = FallTimeout; + // move the player + _controller.Move( + inputDirection.normalized * (_speed * Time.deltaTime) + + new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime + ); + } - // stop our velocity dropping infinitely when grounded - if (_verticalVelocity < 0.0f) - { - _verticalVelocity = -2f; - } + private void JumpAndGravity() + { + if (Grounded) + { + // reset the fall timeout timer + _fallTimeoutDelta = FallTimeout; - // Jump - if (_input.jump && _jumpTimeoutDelta <= 0.0f) - { - // the square root of H * -2 * G = how much velocity needed to reach desired height - _verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity); - } + // stop our velocity dropping infinitely when grounded + if (_verticalVelocity < 0.0f) + { + _verticalVelocity = -2f; + } - // jump timeout - if (_jumpTimeoutDelta >= 0.0f) - { - _jumpTimeoutDelta -= Time.deltaTime; - } - } - else - { - // reset the jump timeout timer - _jumpTimeoutDelta = JumpTimeout; + // Jump + if (_input.jump && _jumpTimeoutDelta <= 0.0f) + { + // the square root of H * -2 * G = how much velocity needed to reach desired height + _verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity); + } - // fall timeout - if (_fallTimeoutDelta >= 0.0f) - { - _fallTimeoutDelta -= Time.deltaTime; - } + // jump timeout + if (_jumpTimeoutDelta >= 0.0f) + { + _jumpTimeoutDelta -= Time.deltaTime; + } + } + else + { + // reset the jump timeout timer + _jumpTimeoutDelta = JumpTimeout; - // if we are not grounded, do not jump - _input.jump = false; - } + // fall timeout + if (_fallTimeoutDelta >= 0.0f) + { + _fallTimeoutDelta -= Time.deltaTime; + } - // apply gravity over time if under terminal (multiply by delta time twice to linearly speed up over time) - if (_verticalVelocity < _terminalVelocity) - { - _verticalVelocity += Gravity * Time.deltaTime; - } - } + // if we are not grounded, do not jump + _input.jump = false; + } - private static float ClampAngle(float lfAngle, float lfMin, float lfMax) - { - if (lfAngle < -360f) lfAngle += 360f; - if (lfAngle > 360f) lfAngle -= 360f; - return Mathf.Clamp(lfAngle, lfMin, lfMax); - } + // apply gravity over time if under terminal (multiply by delta time twice to linearly speed up over time) + if (_verticalVelocity < _terminalVelocity) + { + _verticalVelocity += Gravity * Time.deltaTime; + } + } - private void OnDrawGizmosSelected() - { - Color transparentGreen = new Color(0.0f, 1.0f, 0.0f, 0.35f); - Color transparentRed = new Color(1.0f, 0.0f, 0.0f, 0.35f); + private static float ClampAngle(float lfAngle, float lfMin, float lfMax) + { + if (lfAngle < -360f) + lfAngle += 360f; + if (lfAngle > 360f) + lfAngle -= 360f; + return Mathf.Clamp(lfAngle, lfMin, lfMax); + } - if (Grounded) Gizmos.color = transparentGreen; - else Gizmos.color = transparentRed; + private void OnDrawGizmosSelected() + { + Color transparentGreen = new Color(0.0f, 1.0f, 0.0f, 0.35f); + Color transparentRed = new Color(1.0f, 0.0f, 0.0f, 0.35f); - // when selected, draw a gizmo in the position of, and matching radius of, the grounded collider - Gizmos.DrawSphere(new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z), GroundedRadius); - } - } -} \ No newline at end of file + if (Grounded) + Gizmos.color = transparentGreen; + else + Gizmos.color = transparentRed; + + // when selected, draw a gizmo in the position of, and matching radius of, the grounded collider + Gizmos.DrawSphere( + new Vector3( + transform.position.x, + transform.position.y - GroundedOffset, + transform.position.z + ), + GroundedRadius + ); + } + } +} diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset index 3b0b7c3..2e2e369 100644 --- a/ProjectSettings/NavMeshAreas.asset +++ b/ProjectSettings/NavMeshAreas.asset @@ -71,7 +71,7 @@ NavMeshProjectSettings: cost: 1 m_LastAgentTypeID: -887442657 m_Settings: - - serializedVersion: 2 + - serializedVersion: 3 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -84,7 +84,9 @@ NavMeshProjectSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - accuratePlacement: 0 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_SettingNames: diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 8adce0d..b8a4fed 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -5,6 +5,7 @@ TagManager: serializedVersion: 2 tags: - CinemachineTarget + - enemy layers: - Default - TransparentFX @@ -13,8 +14,8 @@ TagManager: - Water - UI - isInteractable - - - - + - player + - terrain - - -