From 7f18c76d4b66ad83b42c4ada60eacd2fe00dc468 Mon Sep 17 00:00:00 2001 From: Soulaha Balde Date: Sat, 14 May 2022 01:25:42 -0400 Subject: [PATCH] Add firerate and possible to hold down btn to fire --- .../Prefabs/{Turret.prefab => Player.prefab} | 18 +++++++++++- ...{Turret.prefab.meta => Player.prefab.meta} | 0 Assets/Scripts/CannonScript.cs | 28 +++++++++++++++---- 3 files changed, 40 insertions(+), 6 deletions(-) rename Assets/Prefabs/{Turret.prefab => Player.prefab} (95%) rename Assets/Prefabs/{Turret.prefab.meta => Player.prefab.meta} (100%) diff --git a/Assets/Prefabs/Turret.prefab b/Assets/Prefabs/Player.prefab similarity index 95% rename from Assets/Prefabs/Turret.prefab rename to Assets/Prefabs/Player.prefab index fb676fa..51488a1 100644 --- a/Assets/Prefabs/Turret.prefab +++ b/Assets/Prefabs/Player.prefab @@ -45,9 +45,10 @@ GameObject: - component: {fileID: 6969840675499469971} - component: {fileID: 6969840675499469972} - component: {fileID: 6969840675499469973} + - component: {fileID: 3117915759359451286} - component: {fileID: 6969840675499469968} m_Layer: 0 - m_Name: Turret + m_Name: Player m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -148,6 +149,21 @@ MonoBehaviour: projectile: {fileID: 5630905120393344806, guid: 70e77cdd333989d4193d3d85029d8cbe, type: 3} lookDepth: 400 cannonForce: 1000 + fireRate: 0.5 +--- !u!114 &3117915759359451286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6969840675499469974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 44fc4a66977bce94dbaccf9ae1d06e2b, type: 3} + m_Name: + m_EditorClassIdentifier: + points: 0 + cannon: {fileID: 0} --- !u!114 &6969840675499469968 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Turret.prefab.meta b/Assets/Prefabs/Player.prefab.meta similarity index 100% rename from Assets/Prefabs/Turret.prefab.meta rename to Assets/Prefabs/Player.prefab.meta diff --git a/Assets/Scripts/CannonScript.cs b/Assets/Scripts/CannonScript.cs index da03331..6759ff3 100644 --- a/Assets/Scripts/CannonScript.cs +++ b/Assets/Scripts/CannonScript.cs @@ -9,7 +9,12 @@ public class CannonScript : MonoBehaviour [SerializeField] private GameObject projectile; [SerializeField] private float lookDepth; [SerializeField] private float cannonForce; + [SerializeField] private float fireRate = 0.5f; + [SerializeField]private float fireTimer; + private bool firing = false; private Vector3 lookDir; + + // Start is called before the first frame update void Start() { @@ -19,7 +24,16 @@ public class CannonScript : MonoBehaviour // Update is called once per frame void Update() { - + if(firing){ + fireTimer += Time.deltaTime; + if(fireTimer >= fireRate){ + GameObject proj = Instantiate(projectile, transform.position, cannon.transform.rotation); + proj.GetComponent().AddForce(cannonForce * lookDir, ForceMode.Impulse); + fireTimer = 0; + } + }else if(fireTimer < fireRate){ + fireTimer += Time.deltaTime; + } } private Vector3 GetMouseWorldPosition(){ @@ -39,10 +53,14 @@ public class CannonScript : MonoBehaviour } public void OnFire(InputAction.CallbackContext ctx){ - if(ctx.performed){ - GameObject proj = Instantiate(projectile, transform.position, cannon.transform.rotation); - proj.GetComponent().AddForce(cannonForce * lookDir, ForceMode.Impulse); + if(ctx.started){//btn pressed + firing = true; + Debug.Log("Start"); + }else if(ctx.canceled){//btn released + Debug.Log("Release"); + firing = false; + } - } + }