public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        ViveControllerPositionBehaviour myScript = (ViveControllerPositionBehaviour)target;

        if (GUILayout.Button("Start Calibration of Controller"))
        {
            myScript.StartVIVEControllerCalibration(null);
        }
    }
    public void StartCalibrationOfVIVEController(Action onFinished = null)
    {
        if (CanStartCalibrationProcess())
        {
            OnCalibrationFinished = onFinished;

            ViveControllerPositionBehaviour controller = inputDevices.GetComponentInChildren <ViveControllerPositionBehaviour>(true);
            if (controller != null)
            {
                cursor.cursorPositionController = controller;
                status = ExperimentStatus.CalibrationRunning;
                SetCursorActive(true);
                controller.StartVIVEControllerCalibration(() => {
                    FinishCalibration();
                });
            }
            else
            {
                Debug.LogWarning("Could not find the ViveControllerPositionBehaviour component in the children of inputMethods!");
            }
        }
    }
 public CursorSelectionTechniqueVive(ViveControllerPositionBehaviour viveController)
 {
     this.viveController = viveController;
 }