// Update is called once per frame void Update() { SelectObject(FindClosestEnemy()); if (selectedObject != null) { enemyHealthSldr.gameObject.SetActive(true); enemyHealthSldr.value = enemy.GetScaledHealth(); Rect visualRect = RendererBoundsInScreenSpace(selectedObject.GetComponent <Renderer>()); Vector2 newPos = new Vector2((visualRect.xMax - visualRect.xMin) / 2 + visualRect.xMin, (visualRect.yMax - visualRect.yMin) / 2 + visualRect.yMin); reticle.position = Vector2.MoveTowards(reticle.position, newPos, reticleRecenterSpeed); reticle.sizeDelta = Vector2.MoveTowards(reticle.sizeDelta, new Vector2(reticleSizeWithTarget, reticleSizeWithTarget), reticleRecenterSpeed); reticleImage.color = Color.Lerp(reticleImage.color, reticleColorWithTarget, reticleRecenterSpeed); } else { enemyHealthSldr.gameObject.SetActive(false); float screenX = (Screen.width / 2); float screenY = ((Screen.height / 2.5f) * 1.5f); reticle.transform.position = Vector2.MoveTowards(reticle.position, new Vector2(screenX, screenY), reticleRecenterSpeed); reticle.sizeDelta = Vector2.MoveTowards(reticle.sizeDelta, new Vector2(reticleSizeWithNoTarget, reticleSizeWithNoTarget), reticleRecenterSpeed); reticleImage.color = Color.Lerp(reticleImage.color, reticleColorWithNoTarget, reticleRecenterSpeed); } }