void FixedUpdate()
    {
        // Destroy self if player stops existing
        if (objectRefs.player == null)
        {
            Destroy(gameObject);
        }
        else
        {
            if (playerTongue == null)
            {
                playerTongue = objectRefs.player.GetComponent <SCR_Tongue>();
            }

            // Rotate icon to always face camera
            transform.LookAt(objectRefs.playerCamera.transform, objectRefs.playerCamera.transform.up);


            target = playerTongue.currentTarget;
            if (target != null)
            {
                Targeting();
            }
            else
            {
                NotTargeting();
            }

            // Rotate icon 45 degrees if locked on target
            Color lockSpriteColor;
            if (playerTongue.lockedOnTarget && target != null)
            {
                iconAngleOffset      = Mathf.Lerp(iconAngleOffset, -45, 0.6f);
                lockIcon.localScale  = Vector3.Lerp(lockIcon.localScale, Vector3.one, 0.6f);
                lockIconSprite.color = new Color(lockIconSprite.color.r, lockIconSprite.color.g, lockIconSprite.color.b, 1);
            }
            else
            {
                iconAngleOffset      = Mathf.Lerp(iconAngleOffset, 0, 0.6f);
                lockIcon.localScale  = Vector3.Lerp(lockIcon.localScale, new Vector3(1.5f, 1.5f, 1.5f), 0.6f);
                lockIconSprite.color = new Color(lockIconSprite.color.r, lockIconSprite.color.g, lockIconSprite.color.b, 0);
            }
            transform.localEulerAngles += new Vector3(0, 0, iconAngleOffset);
        }
    }
Exemplo n.º 2
0
 private void Awake()
 {
     controls = new InputControls();
     movement = GetComponentInParent <SCR_PlayerV3>();
     tongue   = GetComponentInParent <SCR_Tongue>();
 }