Im trying to make it, so when the user clicks and holds the mouse button down, the attack gets stronger over time. Currently that part of this script works fine, my problem is that the “chargeDamage” and “speed” variables, seem to grow exponentially rather than over a steady rate of time. And it doesn’t seem to reset back to 0 as desired. Any help appreciated.
Heres the script
var projectile : Rigidbody;
var speed = 0;
var fireRate = 0.5;
private var nextFire = 0.0;
var chargeDamage = 0;
var chargeRate = 0.5;
var charging = 0;
function Update()
{
if (Input.GetMouseButtonDown(0))
{
charging = 1;
chargeDamage = 0;
speed = 0;
animation.Play ("DrawBow");
Debug.Log("Charging is True!");
}
//Begin adding to ChargeDamage
if (charging==1)
{
chargeDamage = (chargeDamage + (chargeRate * Time.time));
speed = chargeDamage;
print("The variable is :"+speed);
}
if (Input.GetMouseButtonUp(0))
{
//Fire Code Here, Reset Charge to 0
if (Time.time > nextFire)
var instantiatedProjectile : Rigidbody = Instantiate(projectile, transform.position, transform.rotation);
instantiatedProjectile.velocity = transform.TransformDirection( Vector3(0, 0, speed) );
Physics.IgnoreCollision( instantiatedProjectile.collider, transform.root.collider );
nextFire = Time.time + fireRate;
Debug.Log("Fired, Charge Reset!");
chargeDamage = 0;
charging =0;
speed = 0;
}
}