private void Update() { float hozAxis = Input.GetAxis("Horizontal"); if (!Mathf.Approximately(hozAxis, 0.0f)) { m_pivot.Rotate(Vector3.up, hozAxis * m_rotateSpeed); } m_lastFire += Time.deltaTime; if (m_lastFire >= m_fireRate) { if (Input.GetButtonDown("Fire1")) { CannonBall ball = Instantiate(m_cannonBall, m_turret.position, m_turret.rotation); ball.Shoot((m_turret.position - m_origin.position).normalized); // Play the particles & sfx m_particles.Play(); AudioEvent e = Helpers.RandomElement(m_cannonBlasts); AudioController.Instance.PlaySfx(e); m_lastFire = 0.0f; } } else { float scale_t = Mathf.Clamp01(m_lastFire / m_fireRate); m_turret.localScale = Vector3.Lerp(new Vector3(1.5f, 1.5f, 1.5f), Vector3.one, scale_t); } }
public bool Shoot() { if (ball.ready) { ball.Shoot(transform.localPosition.x, force); return(true); } return(false); }