void InitTouchSystem() { // Pan PanRecognizer panRecognizer = new PanRecognizer(); panRecognizer.gestureCanTrigger = () => { bool isInViewport = geoCamera.IsInViewport(); if (!isInViewport) { return(false); } if (state == GeoState.Normal) { return(canCameraRotate); } return(currentOperation.CanRotateCamera); }; panRecognizer.gestureBeginEvent += (r) => { isCameraRotate = true; geoUI.activePanel.Clear(); }; panRecognizer.gestureRecognizedEvent += (r) => { Vector2 delta = -(r.deltaPosition) * 0.1f; geoCamera.Rotate(delta); }; panRecognizer.gestureEndEvent += (r) => { isCameraRotate = false; }; TouchSystem.addRecognizer(panRecognizer); }