void Shoot() { Vector2 mousePosition = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y); Vector2 firePointPosition = new Vector2(firePoint.position.x, firePoint.position.y); RaycastHit2D hit = Physics2D.Raycast(firePointPosition, mousePosition - firePointPosition, 100, whatToHit); Debug.DrawLine(firePointPosition, (mousePosition - firePointPosition) * 100, Color.cyan); if (hit.collider != null) { Debug.DrawLine(firePointPosition, hit.point, Color.red); Enemies enemy = hit.collider.GetComponent <Enemies>(); if (enemy != null) { enemy.DamageEnemy(Damage); //Debug.Log("We hit " + hit.collider.name + " and did " + Damage + " damage."); } } if (Time.time >= timeToSpawn) { Vector3 hitPos; Vector3 hitNormal; if (hit.collider == null) { hitPos = (mousePosition - firePointPosition) * 30; hitNormal = new Vector3(9999, 9999, 9999); } else { hitPos = hit.point; hitNormal = hit.normal; } Effect(hitPos, hitNormal); timeToSpawn = Time.time + 1 / spawnRate; } }