Variables Set by Function Outside of Script

I am Constructing a script that holds all of the basic functions that i use on most projects, so i can save time when developing. One of my functions is causing a problem.

It executes fine but the variable CountdownTimer does not reset locally in the scripts that is executing it.

where it is supposed to reset to the value held in Static Timer, it Stays at the Current Value.

public void WeaponFire (float StaticTimer, float CountdownTimer, GameObject BulletPrefab, int MouseButton, bool CanFire)
	{
		if (Input.GetMouseButton(MouseButton)) {
			if (CanFire == true) {
				Instantiate (BulletPrefab, transform.position, Quaternion.identity);
				CountdownTimer = StaticTimer;
			}
		}
		
	}

You have passed StaticTimer into WeaponFire and then modified it, however it has not changed in the class it came from. Floats are value types and so are passed by value, a copy is made in WeaponFire. You will need to pass these values by reference.

Try using Passing by reference: http://msdn.microsoft.com/en-us/library/0f66670z(v=vs.71).aspx#vclrfpassingmethodparameters_example5

Ben Stoneman