private IEnumerator DisplayCalibrationResult(CalibrationCompletedArgs e)
    {
        switch (e.Result)
        {
        case CalibrationStatus.Success:
            _instance.GetComponent <Renderer>().material.color = Color.green;
            Debug.Log("TobiiPro: Successfully calibrated the user.");
            break;

        case CalibrationStatus.Failure:
            _instance.GetComponent <Renderer>().material.color = Color.red;
            Debug.LogWarning("TobiiPro: Failed to calibrate the user.");
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }

        var progress = 0f; // 0 - 1

        while (progress < 1f)
        {
            progress += Time.deltaTime * (1f / 0.1f);
            var derp = Easings.QuadraticEaseOut(progress);
            _instance.transform.localScale = Vector3.Lerp(Vector3.zero, _originalScale, derp);

            yield return(null);
        }

        yield return(new WaitForSeconds(0.35f));

        _calibration.WaitingOnIntroAnimation -= StartIntroAnimation;
        _calibration.WaitingOnOutroAnimation -= StartOutroAnimation;
        _calibration.OnCalibrationCompleted  -= OnCalibrationCompleted;

        Destroy(_instance);
        _instance = null;
    }
 private void OnCalibrationCompleted(object sender, CalibrationCompletedArgs e)
 {
     StartCoroutine(DisplayCalibrationResult(e));
 }