Add firerate and possible to hold down btn to fire

This commit is contained in:
Soulaha Balde 2022-05-14 01:25:42 -04:00
parent 0e76928816
commit 7f18c76d4b
3 changed files with 40 additions and 6 deletions

View File

@ -45,9 +45,10 @@ GameObject:
- component: {fileID: 6969840675499469971} - component: {fileID: 6969840675499469971}
- component: {fileID: 6969840675499469972} - component: {fileID: 6969840675499469972}
- component: {fileID: 6969840675499469973} - component: {fileID: 6969840675499469973}
- component: {fileID: 3117915759359451286}
- component: {fileID: 6969840675499469968} - component: {fileID: 6969840675499469968}
m_Layer: 0 m_Layer: 0
m_Name: Turret m_Name: Player
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -148,6 +149,21 @@ MonoBehaviour:
projectile: {fileID: 5630905120393344806, guid: 70e77cdd333989d4193d3d85029d8cbe, type: 3} projectile: {fileID: 5630905120393344806, guid: 70e77cdd333989d4193d3d85029d8cbe, type: 3}
lookDepth: 400 lookDepth: 400
cannonForce: 1000 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 --- !u!114 &6969840675499469968
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -9,7 +9,12 @@ public class CannonScript : MonoBehaviour
[SerializeField] private GameObject projectile; [SerializeField] private GameObject projectile;
[SerializeField] private float lookDepth; [SerializeField] private float lookDepth;
[SerializeField] private float cannonForce; [SerializeField] private float cannonForce;
[SerializeField] private float fireRate = 0.5f;
[SerializeField]private float fireTimer;
private bool firing = false;
private Vector3 lookDir; private Vector3 lookDir;
// Start is called before the first frame update // Start is called before the first frame update
void Start() void Start()
{ {
@ -19,7 +24,16 @@ public class CannonScript : MonoBehaviour
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
if(firing){
fireTimer += Time.deltaTime;
if(fireTimer >= fireRate){
GameObject proj = Instantiate(projectile, transform.position, cannon.transform.rotation);
proj.GetComponent<Rigidbody>().AddForce(cannonForce * lookDir, ForceMode.Impulse);
fireTimer = 0;
}
}else if(fireTimer < fireRate){
fireTimer += Time.deltaTime;
}
} }
private Vector3 GetMouseWorldPosition(){ private Vector3 GetMouseWorldPosition(){
@ -39,10 +53,14 @@ public class CannonScript : MonoBehaviour
} }
public void OnFire(InputAction.CallbackContext ctx){ public void OnFire(InputAction.CallbackContext ctx){
if(ctx.performed){ if(ctx.started){//btn pressed
GameObject proj = Instantiate(projectile, transform.position, cannon.transform.rotation); firing = true;
proj.GetComponent<Rigidbody>().AddForce(cannonForce * lookDir, ForceMode.Impulse); Debug.Log("Start");
} }else if(ctx.canceled){//btn released
Debug.Log("Release");
firing = false;
}
} }
} }