void Fire(float firingRate)
{
TimePerFrame += Time.deltaTime;
if(TimePerFrame >= firingRate)
{
Vector3 ProjectileDistance = new Vector3(0, 30, 0); //distance between center of the campion and it's head
GameObject beam = Instantiate(projectile, transform.position + ProjectileDistance, Quaternion.identity) as GameObject;
beam.GetComponent<Rigidbody2D>().velocity = new Vector3(0, projectileSpeed, 0);
// AudioSource.PlayClipAtPoint(fireSound, transform.position);
TimePerFrame = 0;
}
}
void Update ()
{
if (freezePosition == false)
{
Fire(firingRate);
PositionChaning();
firingRate = Mathf.Lerp(minFiringRate, maxFiringRate, 0.1f);
Debug.Log(firingRate);
}
}
Я хочу, чтобы моя скорость стрельбы была гибкой, я хочу, чтобы она начиналась с быстрой стрельбы и позволяла автоматически снижать скорость стрельбы.(чем больше значение floatRate, тем медленнее скорость)
Проблема в том, что firingRate = Mathf.Lerp(minFiringRate, maxFiringRate, 0.1f);
срабатывает один и только один раз.Кажется, он не меняет своего значения в каждом кадре.
Debug.Log(firingRate);
сообщает значение каждому кадру, но, похоже, он остается постоянным.
Почему это происходит?