// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { Vector3 point = new Vector3(_camera.pixelWidth / 2, _camera.pixelHeight / 2, 0); Ray ray = _camera.ScreenPointToRay(point); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { GameObject hitObject = hit.transform.gameObject; HitReaction enemyReaction = hitObject.GetComponent <HitReaction>(); if (enemyReaction != null) { enemyReaction.ReactToHit(); } else { StartCoroutine(PlaceSphereIndicator(hit.point)); } } } }