From f754b692e2284c216f15723b74bb17e8474b4976 Mon Sep 17 00:00:00 2001 From: KOSMOGOR Date: Sun, 27 Apr 2025 17:35:06 +0300 Subject: [PATCH] add: minigun bug: minigun's mesh --- Assets/Materials/Emmited/Orange_Emit 1.mat | 137 ++++++++++++++++ .../Materials/Emmited/Orange_Emit 1.mat.meta | 8 + Assets/Prefabs/Game/Player.prefab | 63 +++++++ Assets/Prefabs/Weapons/MinigunBullet.prefab | 154 ++++++++++++++++++ .../Prefabs/Weapons/MinigunBullet.prefab.meta | 7 + Assets/Prefabs/Weapons/Minigun_0.1.prefab | 139 ++++++++++++++++ .../Prefabs/Weapons/Minigun_0.1.prefab.meta | 7 + Assets/Prefabs/Weapons/Rifle_0.3.prefab | 1 + Assets/Scripts/Player/Minigun.cs | 21 +++ Assets/Scripts/Player/Minigun.cs.meta | 2 + Assets/Scripts/Player/Rifle.cs | 2 +- Assets/Scripts/Player/Weapon.cs | 1 + 12 files changed, 541 insertions(+), 1 deletion(-) create mode 100644 Assets/Materials/Emmited/Orange_Emit 1.mat create mode 100644 Assets/Materials/Emmited/Orange_Emit 1.mat.meta create mode 100644 Assets/Prefabs/Weapons/MinigunBullet.prefab create mode 100644 Assets/Prefabs/Weapons/MinigunBullet.prefab.meta create mode 100644 Assets/Prefabs/Weapons/Minigun_0.1.prefab create mode 100644 Assets/Prefabs/Weapons/Minigun_0.1.prefab.meta create mode 100644 Assets/Scripts/Player/Minigun.cs create mode 100644 Assets/Scripts/Player/Minigun.cs.meta diff --git a/Assets/Materials/Emmited/Orange_Emit 1.mat b/Assets/Materials/Emmited/Orange_Emit 1.mat new file mode 100644 index 0000000..37beb00 --- /dev/null +++ b/Assets/Materials/Emmited/Orange_Emit 1.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Orange_Emit 1 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _EMISSION + m_InvalidKeywords: [] + m_LightmapFlags: 2 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 1, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 1, g: 0.6300467, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &1224925544621896716 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 9 diff --git a/Assets/Materials/Emmited/Orange_Emit 1.mat.meta b/Assets/Materials/Emmited/Orange_Emit 1.mat.meta new file mode 100644 index 0000000..f5dd180 --- /dev/null +++ b/Assets/Materials/Emmited/Orange_Emit 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a4feddebd41944d409119e7a23e349ac +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Game/Player.prefab b/Assets/Prefabs/Game/Player.prefab index 2ef7bf6..31e894e 100644 --- a/Assets/Prefabs/Game/Player.prefab +++ b/Assets/Prefabs/Game/Player.prefab @@ -134,6 +134,7 @@ Transform: m_Children: - {fileID: 3053641561535516023} - {fileID: 7306251229952926972} + - {fileID: 851240011176901326} m_Father: {fileID: 6890030909251295590} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!20 &1094126809165627842 @@ -513,6 +514,68 @@ Transform: m_CorrespondingSourceObject: {fileID: 3191971078612809307, guid: af6264663cfc3ba499db761a90d861ca, type: 3} m_PrefabInstance: {fileID: 444904299868781356} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1950725631141517034 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 4506534449155536579} + m_Modifications: + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalPosition.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalPosition.y + value: -0.4 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1984319744774026910, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + propertyPath: m_Name + value: Minigun_0.1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} +--- !u!4 &851240011176901326 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1207642995709242404, guid: f72348c5ba5fe034fa680b14fa422ebc, type: 3} + m_PrefabInstance: {fileID: 1950725631141517034} + m_PrefabAsset: {fileID: 0} --- !u!1001 &6803844382836373506 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Weapons/MinigunBullet.prefab b/Assets/Prefabs/Weapons/MinigunBullet.prefab new file mode 100644 index 0000000..51244e5 --- /dev/null +++ b/Assets/Prefabs/Weapons/MinigunBullet.prefab @@ -0,0 +1,154 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1562924000103655330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2987293529414042391} + - component: {fileID: 3266538827119481022} + - component: {fileID: 3277822925141770390} + - component: {fileID: -8958570174584186611} + - component: {fileID: 8393546946202406891} + - component: {fileID: -8478621624057119167} + m_Layer: 0 + m_Name: MinigunBullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2987293529414042391 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562924000103655330} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3266538827119481022 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562924000103655330} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3277822925141770390 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562924000103655330} + 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_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a4feddebd41944d409119e7a23e349ac, 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!54 &-8958570174584186611 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562924000103655330} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 2 +--- !u!135 &8393546946202406891 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562924000103655330} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &-8478621624057119167 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562924000103655330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e7a451ad0b53e8c0ca82f7ce15114c38, type: 3} + m_Name: + m_EditorClassIdentifier: + speed: 50 + damage: 10 + timeToLive: 5 diff --git a/Assets/Prefabs/Weapons/MinigunBullet.prefab.meta b/Assets/Prefabs/Weapons/MinigunBullet.prefab.meta new file mode 100644 index 0000000..98a5b89 --- /dev/null +++ b/Assets/Prefabs/Weapons/MinigunBullet.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 65c4fcf91c2d6644e978a1005753ca66 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Weapons/Minigun_0.1.prefab b/Assets/Prefabs/Weapons/Minigun_0.1.prefab new file mode 100644 index 0000000..e27ef9d --- /dev/null +++ b/Assets/Prefabs/Weapons/Minigun_0.1.prefab @@ -0,0 +1,139 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7933855279006059416 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1344317373945794566} + m_Layer: 0 + m_Name: Muzzle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1344317373945794566 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7933855279006059416} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 10.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1207642995709242404} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1677821322698263503 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalScale.x + value: 0.12 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalScale.y + value: 0.12 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalScale.z + value: 0.12 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalPosition.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalPosition.y + value: -0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_ConstrainProportionsScale + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + propertyPath: m_Name + value: Minigun_0.1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + insertIndex: -1 + addedObject: {fileID: 1344317373945794566} + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + insertIndex: -1 + addedObject: {fileID: 956903261267722487} + m_SourcePrefab: {fileID: 100100000, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} +--- !u!4 &1207642995709242404 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + m_PrefabInstance: {fileID: 1677821322698263503} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1984319744774026910 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: a55dc7c2ce4f9ee28aa8628d5eea7613, type: 3} + m_PrefabInstance: {fileID: 1677821322698263503} + m_PrefabAsset: {fileID: 0} +--- !u!114 &956903261267722487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984319744774026910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc7add7c3de58ca4d802a6eb169808fa, type: 3} + m_Name: + m_EditorClassIdentifier: + bulletType: 3 + projectilePrefab: {fileID: 1562924000103655330, guid: 65c4fcf91c2d6644e978a1005753ca66, type: 3} + spawnPosition: {fileID: 1344317373945794566} + fireRate: 10 + currentDelay: 0 diff --git a/Assets/Prefabs/Weapons/Minigun_0.1.prefab.meta b/Assets/Prefabs/Weapons/Minigun_0.1.prefab.meta new file mode 100644 index 0000000..d6da8c7 --- /dev/null +++ b/Assets/Prefabs/Weapons/Minigun_0.1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f72348c5ba5fe034fa680b14fa422ebc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Weapons/Rifle_0.3.prefab b/Assets/Prefabs/Weapons/Rifle_0.3.prefab index 0165927..456c489 100644 --- a/Assets/Prefabs/Weapons/Rifle_0.3.prefab +++ b/Assets/Prefabs/Weapons/Rifle_0.3.prefab @@ -123,6 +123,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4cc7bc1baad25a9459ee673b6d502363, type: 3} m_Name: m_EditorClassIdentifier: + bulletType: 1 projectilePrefab: {fileID: 1562924000103655330, guid: bfe7100930f24fd52b5b66832f59cfa8, type: 3} spawnPosition: {fileID: 1283704224102497885} fireRate: 3 diff --git a/Assets/Scripts/Player/Minigun.cs b/Assets/Scripts/Player/Minigun.cs new file mode 100644 index 0000000..822c541 --- /dev/null +++ b/Assets/Scripts/Player/Minigun.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +public class Minigun : Weapon +{ + public GameObject projectilePrefab; + public Transform spawnPosition; + public float fireRate = 10f; + + [SerializeField] float currentDelay = 0; + + public override void Shoot(bool keyDown, bool keyHold) { + if (keyHold && (fireRate == 0 || currentDelay >= 1 / fireRate) && GameController.i.ConsumeBullet(bulletType)) { + Instantiate(projectilePrefab, spawnPosition.position, spawnPosition.rotation); + currentDelay = 0; + } + } + + void Update() { + if (fireRate != 0) currentDelay = Mathf.Clamp(currentDelay += Time.deltaTime, 0, 1 / fireRate); + } +} diff --git a/Assets/Scripts/Player/Minigun.cs.meta b/Assets/Scripts/Player/Minigun.cs.meta new file mode 100644 index 0000000..e7f29bb --- /dev/null +++ b/Assets/Scripts/Player/Minigun.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bc7add7c3de58ca4d802a6eb169808fa \ No newline at end of file diff --git a/Assets/Scripts/Player/Rifle.cs b/Assets/Scripts/Player/Rifle.cs index bd3196f..edbe7b2 100644 --- a/Assets/Scripts/Player/Rifle.cs +++ b/Assets/Scripts/Player/Rifle.cs @@ -9,7 +9,7 @@ public class Rifle : Weapon [SerializeField] float currentDelay = 0; public override void Shoot(bool keyDown, bool keyHold) { - if (keyHold && (fireRate == 0 || currentDelay >= 1 / fireRate) && GameController.i.ConsumeBullet(BulletType.Rifle)) { + if (keyHold && (fireRate == 0 || currentDelay >= 1 / fireRate) && GameController.i.ConsumeBullet(bulletType)) { Instantiate(projectilePrefab, spawnPosition.position, spawnPosition.rotation); currentDelay = 0; } diff --git a/Assets/Scripts/Player/Weapon.cs b/Assets/Scripts/Player/Weapon.cs index 8c7e3d8..e1801b1 100644 --- a/Assets/Scripts/Player/Weapon.cs +++ b/Assets/Scripts/Player/Weapon.cs @@ -3,6 +3,7 @@ using UnityEngine; public abstract class Weapon : MonoBehaviour { public bool isActive { get; private set; } = false; + public BulletType bulletType = BulletType.None; public abstract void Shoot(bool keyDown, bool keyHold);