private void ShootDownEvent() { if (null != OnShootEvent) { OnShootEvent.Invoke(); } }
public void Shoot(Rigidbody2D thingToShoot, bool forced = false) { if (canShoot && (cooledDown || forced)) { cooledDown = false; var thing = Instantiate(thingToShoot); thing.gameObject.SetActive(true); thing.transform.position = transform.position; var mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); mousePos.z = 0; var dir = mousePos - transform.position; var magnitude = Mathf.Clamp(dir.magnitude * speed, minSpeed, maxSpeed); var normDir = dir; normDir.Normalize(); thing.velocity = normDir * magnitude; onShoot.Invoke(thing.transform); } }