Basic ammo functionality

Lecture 178
This commit is contained in:
Stedd 2022-10-24 20:55:25 +02:00
parent 2dbd212481
commit f624dace6d
15 changed files with 524 additions and 16 deletions

View File

@ -185,7 +185,7 @@
"id": "ed66cbff-2900-4a62-8896-696503cfcd31",
"path": "<Pointer>/delta",
"interactions": "",
"processors": "InvertVector2(invertX=false),ScaleVector2(x=0.05,y=0.05)",
"processors": "InvertVector2(invertX=false),ScaleVector2(x=0.15,y=0.15)",
"groups": "KeyboardMouse",
"action": "Look",
"isComposite": false,

View File

@ -398,7 +398,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 774924462}
m_RootOrder: 4
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &101430667
PrefabInstance:
@ -781,6 +781,30 @@ Transform:
m_CorrespondingSourceObject: {fileID: 400000, guid: 2b127815fd0f2074eae3a0c6a4786d0b, type: 3}
m_PrefabInstance: {fileID: 1215845398}
m_PrefabAsset: {fileID: 0}
--- !u!1 &449506739 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1218087889432038952, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
m_PrefabInstance: {fileID: 8204767108263278737}
m_PrefabAsset: {fileID: 0}
--- !u!114 &449506742
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449506739}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 97c35481a551c3a4d9d5f0e3fe13a03d, type: 3}
m_Name:
m_EditorClassIdentifier:
_ammoType: 1
_maxBeltAmmoAmount: 0
_maxMagAmmoAmount: 0
_currentBeltAmmoAmount: 0
_currentMagAmmoAmount: 0
_S_currentBeltAmmoAmount: {fileID: 11400000, guid: f19d1fc1d5102a545800f4f8273640b1, type: 2}
_S_currentMagAmmoAmount: {fileID: 11400000, guid: 9a77ec14c64717643bed1c6e7a3885ae, type: 2}
--- !u!1 &520203987
GameObject:
m_ObjectHideFlags: 0
@ -812,7 +836,7 @@ RectTransform:
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 774924462}
m_RootOrder: 2
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -1571,6 +1595,7 @@ RectTransform:
m_Children:
- {fileID: 1004910984}
- {fileID: 1722452409}
- {fileID: 925195242}
- {fileID: 520203988}
- {fileID: 1400272403}
- {fileID: 89176748}
@ -1966,6 +1991,158 @@ Transform:
m_CorrespondingSourceObject: {fileID: 400000, guid: ab33e6080ae416b4d899f39fa8951b98, type: 3}
m_PrefabInstance: {fileID: 923022665}
m_PrefabAsset: {fileID: 0}
--- !u!1 &925195241
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 925195242}
- component: {fileID: 925195245}
- component: {fileID: 925195244}
- component: {fileID: 925195243}
m_Layer: 5
m_Name: MagAmmoText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &925195242
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 925195241}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 774924462}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 20, y: 20}
m_SizeDelta: {x: 400, y: 40}
m_Pivot: {x: 0, y: 0}
--- !u!114 &925195243
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 925195241}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Mag ammo: 99999'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &925195244
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 925195241}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 208857bb9f1bc8c48a08050795732b0a, type: 3}
m_Name:
m_EditorClassIdentifier:
_prefix: 'Mag ammo: '
_variable: {fileID: 11400000, guid: 9a77ec14c64717643bed1c6e7a3885ae, type: 2}
_textObject: {fileID: 925195243}
_text:
--- !u!222 &925195245
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 925195241}
m_CullTransparentMesh: 1
--- !u!1001 &945433442
PrefabInstance:
m_ObjectHideFlags: 0
@ -2857,7 +3034,7 @@ RectTransform:
- {fileID: 63075908}
- {fileID: 1286262076}
m_Father: {fileID: 774924462}
m_RootOrder: 3
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -2968,6 +3145,30 @@ Transform:
m_CorrespondingSourceObject: {fileID: 400000, guid: 2b127815fd0f2074eae3a0c6a4786d0b, type: 3}
m_PrefabInstance: {fileID: 304950691}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1483687393 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3273242134651530650, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
m_PrefabInstance: {fileID: 8204767108263278737}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1483687396
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1483687393}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 97c35481a551c3a4d9d5f0e3fe13a03d, type: 3}
m_Name:
m_EditorClassIdentifier:
_ammoType: 3
_maxBeltAmmoAmount: 0
_maxMagAmmoAmount: 0
_currentBeltAmmoAmount: 0
_currentMagAmmoAmount: 0
_S_currentBeltAmmoAmount: {fileID: 11400000, guid: f19d1fc1d5102a545800f4f8273640b1, type: 2}
_S_currentMagAmmoAmount: {fileID: 11400000, guid: 9a77ec14c64717643bed1c6e7a3885ae, type: 2}
--- !u!1001 &1486746696
PrefabInstance:
m_ObjectHideFlags: 0
@ -3269,9 +3470,10 @@ GameObject:
m_Component:
- component: {fileID: 1722452409}
- component: {fileID: 1722452411}
- component: {fileID: 1722452412}
- component: {fileID: 1722452410}
m_Layer: 5
m_Name: AmmoText
m_Name: BeltAmmoText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -3294,8 +3496,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 20, y: 20}
m_SizeDelta: {x: 250, y: 40}
m_AnchoredPosition: {x: 20, y: 60}
m_SizeDelta: {x: 400, y: 40}
m_Pivot: {x: 0, y: 0}
--- !u!114 &1722452410
MonoBehaviour:
@ -3317,7 +3519,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Ammo: 999'
m_text: 'Belt ammo : 99999'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@ -3394,6 +3596,22 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1722452408}
m_CullTransparentMesh: 1
--- !u!114 &1722452412
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1722452408}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 208857bb9f1bc8c48a08050795732b0a, type: 3}
m_Name:
m_EditorClassIdentifier:
_prefix: 'Belt ammo: '
_variable: {fileID: 11400000, guid: f19d1fc1d5102a545800f4f8273640b1, type: 2}
_textObject: {fileID: 1722452410}
_text:
--- !u!1001 &1754370120
PrefabInstance:
m_ObjectHideFlags: 0
@ -3712,7 +3930,10 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
_fovNormal: 40
_senseNormal: 1
_fovZoom: 20
_senseZoom: 0.5
_input: {fileID: 0}
_camera: {fileID: 1850161070}
_zoomedIn: 0
--- !u!20 &1874573760 stripped
@ -3966,7 +4187,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.x
value: -42.2
value: -9.2
objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.y
@ -3974,7 +4195,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.z
value: 19.77
value: 6.2
objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalRotation.w
@ -4215,6 +4436,10 @@ PrefabInstance:
propertyPath: m_Name
value: MuzzleFlash
objectReference: {fileID: 0}
- target: {fileID: 6980118021907165246, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: _ammoType
value: 2
objectReference: {fileID: 0}
- target: {fileID: 7060812621224890882, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: fireAction.m_Id
value: 974fe4ce-65be-4370-b772-71ca6290711e
@ -4263,6 +4488,10 @@ PrefabInstance:
propertyPath: m_NotificationBehavior
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8729095170121787993, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: _maxHealth
value: 50000
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_RootOrder
value: 4

24
Assets/UIVariable.cs Normal file
View File

@ -0,0 +1,24 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class UIVariable : MonoBehaviour
{
[SerializeField] private string _prefix;
[SerializeField] private FloatVariable _variable;
[SerializeField] private TextMeshProUGUI _textObject;
[SerializeField] private string _text;
private void OnEnable()
{
_textObject = GetComponent<TextMeshProUGUI>();
_text = _textObject.text;
}
private void Update()
{
_textObject.text = _prefix + _variable.Value;
}
}

11
Assets/UIVariable.cs.meta Normal file
View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 208857bb9f1bc8c48a08050795732b0a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

106
Assets/Weapons/Ammo.cs Normal file
View File

@ -0,0 +1,106 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Ammo : MonoBehaviour
{
[Header("Config")]
[SerializeField] private int _ammoType;
[SerializeField] private int _maxBeltAmmoAmount;
[SerializeField] private int _maxMagAmmoAmount;
[Header("State")]
[SerializeField] private int _currentBeltAmmoAmount;
[SerializeField] private int _currentMagAmmoAmount;
[Header("Connections")]
[SerializeField] private FloatVariable _S_currentBeltAmmoAmount;
[SerializeField] private FloatVariable _S_currentMagAmmoAmount;
private void OnEnable()
{
_currentBeltAmmoAmount = _maxBeltAmmoAmount;
_currentMagAmmoAmount = _maxMagAmmoAmount;
}
#region Public Properties
public int AmmoType
{
get => _ammoType;
set => _ammoType = value;
}
public int MaxMagAmmoAmount
{
get => _maxMagAmmoAmount;
set => _maxMagAmmoAmount = value;
}
public int CurrentMagAmmoAmount
{
get => _currentMagAmmoAmount;
set => _currentMagAmmoAmount = value;
}
#endregion
#region Setters
public void Reload()
{
int diff = _maxMagAmmoAmount - _currentMagAmmoAmount;
print(diff);
if (diff < _currentBeltAmmoAmount)
{
_currentBeltAmmoAmount -= diff;
_currentMagAmmoAmount += diff;
}
else
{
_currentMagAmmoAmount += _currentBeltAmmoAmount;
_currentBeltAmmoAmount = 0;
}
AmmoUpdate();
}
public void ModifyMagAmmo(int modifyValue)
{
_currentMagAmmoAmount += modifyValue;
if (_currentMagAmmoAmount > _maxMagAmmoAmount)
{
_currentMagAmmoAmount = _maxMagAmmoAmount;
}
if (_currentMagAmmoAmount <= 0)
{
_currentMagAmmoAmount = 0;
}
AmmoUpdate();
}
#endregion
#region Getters
public float GetMagazineAmmoFactor()
{
return _currentMagAmmoAmount / (float)_maxMagAmmoAmount;
}
public float GetBeltAmmoFactor()
{
return _currentBeltAmmoAmount / (float)_maxBeltAmmoAmount;
}
#endregion
private void AmmoUpdate()
{
_S_currentBeltAmmoAmount.Value = _currentBeltAmmoAmount;
_S_currentMagAmmoAmount.Value = _currentMagAmmoAmount;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 97c35481a551c3a4d9d5f0e3fe13a03d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 1dc60414db7c7e84b80ebf750c4680cc, type: 3}
m_Name: BeltAmmo
m_EditorClassIdentifier:
_value: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f19d1fc1d5102a545800f4f8273640b1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,13 @@
using UnityEngine;
[CreateAssetMenu(menuName = "FloatVariable")]
public class FloatVariable : ScriptableObject
{
[SerializeField] private float _value;
public float Value
{
get => _value;
set => this._value = value;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1dc60414db7c7e84b80ebf750c4680cc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -10,6 +10,7 @@ GameObject:
m_Component:
- component: {fileID: 453068}
- component: {fileID: 5719313868755367213}
- component: {fileID: 5655468185604888337}
- component: {fileID: 3316574}
- component: {fileID: 2346984}
m_Layer: 0
@ -46,6 +47,31 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 01ef216392c8f33409f2efcd91f4e510, type: 3}
m_Name:
m_EditorClassIdentifier:
_range: 100
_weaponDamage: 25
_fpCamera: {fileID: 0}
_muzzleFlash: {fileID: 0}
_bulletImpact: {fileID: 0}
_ammo: {fileID: 0}
--- !u!114 &5655468185604888337
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 118234}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 97c35481a551c3a4d9d5f0e3fe13a03d, type: 3}
m_Name:
m_EditorClassIdentifier:
_ammoType: 0
_maxBeltAmmoAmount: 0
_maxMagAmmoAmount: 0
_currentBeltAmmoAmount: 0
_currentMagAmmoAmount: 0
_S_currentBeltAmmoAmount: {fileID: 11400000, guid: f19d1fc1d5102a545800f4f8273640b1, type: 2}
_S_currentMagAmmoAmount: {fileID: 11400000, guid: 9a77ec14c64717643bed1c6e7a3885ae, type: 2}
--- !u!33 &3316574
MeshFilter:
m_ObjectHideFlags: 0

View File

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 1dc60414db7c7e84b80ebf750c4680cc, type: 3}
m_Name: MagazineAmmo
m_EditorClassIdentifier:
_value: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9a77ec14c64717643bed1c6e7a3885ae
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -10,6 +10,7 @@ GameObject:
m_Component:
- component: {fileID: 417070}
- component: {fileID: 1703679832321447341}
- component: {fileID: 8817107657672854186}
m_Layer: 0
m_Name: Revolver
m_TagString: Untagged
@ -48,11 +49,31 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 01ef216392c8f33409f2efcd91f4e510, type: 3}
m_Name:
m_EditorClassIdentifier:
_range: 100
_weaponDamage: 25
_fpCamera: {fileID: 0}
_muzzleFlash: {fileID: 6070271853189258210}
_bulletImpact: {fileID: 252487699782519274, guid: 82851982cb47c134a8403ffcb052b9d2, type: 3}
_range: 100
_weaponDamage: 25
_ammo: {fileID: 8817107657672854186}
--- !u!114 &8817107657672854186
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 117070}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 97c35481a551c3a4d9d5f0e3fe13a03d, type: 3}
m_Name:
m_EditorClassIdentifier:
_ammoType: 0
_maxBeltAmmoAmount: 150
_maxMagAmmoAmount: 7
_currentBeltAmmoAmount: 0
_currentMagAmmoAmount: 3
_S_currentBeltAmmoAmount: {fileID: 11400000, guid: f19d1fc1d5102a545800f4f8273640b1, type: 2}
_S_currentMagAmmoAmount: {fileID: 11400000, guid: 9a77ec14c64717643bed1c6e7a3885ae, type: 2}
--- !u!1 &160878
GameObject:
m_ObjectHideFlags: 0

View File

@ -2,16 +2,21 @@ using UnityEngine;
public class Weapon : MonoBehaviour
{
[Header("Config")]
[SerializeField] private float _range = 100f;
[SerializeField] private float _weaponDamage = 25f;
[Header("Connections")]
[SerializeField] private Camera _fpCamera;
[SerializeField] private ParticleSystem _muzzleFlash;
[SerializeField] private GameObject _bulletImpact;
[SerializeField] private float _range = 100f;
[SerializeField] private float _weaponDamage = 25f;
[SerializeField] private Ammo _ammo;
private void Awake()
{
_fpCamera = FindObjectOfType<Camera>();
_muzzleFlash = GetComponentInChildren<ParticleSystem>();
_ammo = GetComponent<Ammo>();
}
public void OnFire()
@ -22,13 +27,18 @@ public class Weapon : MonoBehaviour
public void OnReload()
{
print($"Reloading {gameObject.name}");
_ammo.Reload();
}
private void Shoot()
{
if (_ammo.CurrentMagAmmoAmount > 0)
{
_ammo.ModifyMagAmmo(-1);
Animation();
ProcessHit();
}
}
private void Animation()
{