Example #1
0
    // 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);
        }
    }