public void ChangeMode(HorizonMovementMode mode)
    {
        Transform currentLocation = obj.transform;

        GameObject.Destroy(obj);

        obj = (GameObject)GameObject.Instantiate(mode.movementObject, currentLocation.position, currentLocation.rotation);
        followTarget = obj.transform;
        obj.GetComponent<BaseCharacterController>().setInputController(this);
        previousDistance = currentMode.cameraDistance;
        fadingIn = currentMode.hideModel;
        currentMode = mode;
        targetDistance = currentMode.cameraDistance;

        changeTimer = ChangeTime;
        changingCamera = true;
    }
    // Use this for initialization
    void Start()
    {
        currentMode = MovementModes[0];
        targetDistance = currentMode.cameraDistance;
        obj = (GameObject)GameObject.Instantiate(currentMode.movementObject, startPoint.position, startPoint.rotation);
        followTarget = obj.transform;
        //gameObject.GetComponent<SmoothFollow>().target = obj.transform;
        obj.GetComponent<BaseCharacterController>().setInputController(this);
        followDistance = currentMode.cameraDistance;
        lastMouse = new Vector2(Screen.width / 2, Screen.height / 2);

        x = transform.eulerAngles.x;
        y = transform.eulerAngles.y;
    }