public void Shot() { if (_lastFireTime < Time.time) { float accuracy = Random.Range(-_accuracy, _accuracy); var dir = Quaternion.AngleAxis(accuracy, Vector3.forward) * (_aim.position - transform.position).normalized; Bullet bullet = _bulletsFactory.Produce(transform.position); bullet.AddSpeed(dir, _speedBullet); _lastFireTime = Time.time + 1f / _fireRate; } }