void ComeBackUpdate()
    {
        if (backwardTimer <= durationTime)
        {
            backwardTimer += Time.deltaTime;

            backwardSpeed = Easing.QuartEaseIn(backwardTimer, 0, forwardSpeed, durationTime);
        }
        else
        {
            backwardSpeed = forwardSpeed;
        }

        float distanceFromPlayer = Vector3.Distance(hammerTransform.position, playerTransform.position);

        if (distanceFromPlayer > 4f)
        {
            //Hammer Position coming back
            Vector3 targetPosition = new Vector3(playerTransform.position.x, hammerTransform.position.y, playerTransform.position.z);
            hammerTransform.position = Vector3.MoveTowards(hammerTransform.position, targetPosition, backwardSpeed * Time.deltaTime);

            //Hammer Flip Rotation
            Vector3 directionFromPlayer = hammerTransform.position - playerTransform.position;
            float   desiredYAngle       = Mathf.Atan2(directionFromPlayer.x, directionFromPlayer.z) * Mathf.Rad2Deg;

            hammerTransform.rotation = Quaternion.SlerpUnclamped(hammerTransform.rotation, Quaternion.Euler(180, desiredYAngle, 77), backwardTimer / 0.3f);
        }
        else if (distanceFromPlayer <= 4f && distanceFromPlayer >= 1f)
        {
            //Hammer Position towards parent transform
            hammerTransform.position = Vector3.MoveTowards(hammerTransform.position, parentBone.position, backwardSpeed * Time.deltaTime);

            if (!hammerCameBack)
            {
                playerBehaviour.CatchHammer();
                hammerCameBack = true;
                StartCoroutine(HammerBackAssurance(0.3f));
            }
            else
            {
                //Hammer Hand Grab Rotation
                Vector3 directionFromPlayer = hammerTransform.position - playerTransform.position;
                float   desiredYAngle       = Mathf.Atan2(directionFromPlayer.x, directionFromPlayer.z) * Mathf.Rad2Deg;

                Vector3 initRotation = hammerTransform.rotation.eulerAngles;
                hammerTransform.rotation = Quaternion.RotateTowards(hammerTransform.rotation, parentBone.rotation * Quaternion.Inverse(hammerLRotation), 20);

                if (Vector3.Distance(hammerTransform.position, parentBone.position) < 0.25f)
                {
                    HammerIsBack();
                }
            }
        }
        else
        {
            HammerIsBack();
        }
    }