protected override void StartController(GestureListener listener) { // Subscribe to desktop events var mouseRotateCamera = new MouseMoveGesture(RotateCamera) { NeededButtons = new KeyCode[] { KeyCode.Mouse0 }, ExcludedButtons = new KeyCode[] { KeyCode.LeftAlt }, Multiplier = Vector2.one * desktopRotateCameraSensitivity, }; mouseRotateCamera.startMove += StartRotateCamera; listener.AddListeners(mouseRotateCamera); // Subscribe to touch events var touchRotate = new TouchPanGesture(RotateCamera) { Multiplier = Vector2.one * touchRotateSensitivity }; touchRotate.onPanStart += StartRotateAroundPivot; listener.AddListeners(touchRotate); }
protected override void StartController(GestureListener listener) { m_RotationPivot = ComputePivot(); // Subscribe to desktop events var mouseZoom = new MouseScrollGesture(Scale) { Multiplier = desktopScrollSensitivity }; var mouseRotatePivot = new MouseMoveGesture(RotateAroundPivot) { NeededButtons = new KeyCode[] { KeyCode.Mouse0 }, Multiplier = Vector2.one * desktopRotateAroundPivotSensitivity }; listener.AddListeners(mouseZoom, mouseRotatePivot); // Subscribe to touch events var touchZoom = new TouchPinchGesture(Scale) { Multiplier = touchPinchSensitivity, }; var touchRotatePivot = new TouchPanGesture(RotateAroundPivot) { Multiplier = Vector2.one * touchRotateAroundPivotSensitivity }; listener.AddListeners(touchZoom, touchRotatePivot); }
protected override void StartController(GestureListener listener) { // Subscribe to desktop events var mouseZoom = new MouseScrollGesture(Zoom) { Multiplier = DesktopScrollSensitivity }; var mouseAltZoom = new MouseMoveGesture(v => Zoom(v.x)) { NeededButtons = new KeyCode[] { KeyCode.LeftAlt, KeyCode.Mouse1 }, Multiplier = Vector2.one * DesktopAltZoomSensitivity }; var mousePan = new MouseMoveGesture(Pan) { NeededButtons = new KeyCode[] { KeyCode.Mouse2 }, Multiplier = -Vector2.one * DesktopPanSensitivity }; var mouseLeftClickRotate = new MouseMoveGesture(RotateAroundPivot) { NeededButtons = new KeyCode[] { KeyCode.Mouse0 }, Multiplier = Vector2.one * DesktopRotateAroundPivotSensitivity }; mouseLeftClickRotate.startMove += StartRotateAroundPivot; var mouseRotateCamera = new MouseMoveGesture(RotateCamera) { NeededButtons = new KeyCode[] { KeyCode.Mouse1 }, ExcludedButtons = new KeyCode[] { KeyCode.LeftAlt }, Multiplier = Vector2.one * DesktopRotateCameraSensitivity, }; mouseRotateCamera.startMove += StartRotateCamera; var moveCamera = new DirectionButtonsGesture(MoveCamera) { Multiplier = DesktopMoveSensitivity, ExcludedButtons = new KeyCode[] { KeyCode.LeftShift } }; var moveCameraDouble = new DirectionButtonsGesture(MoveCamera) { Multiplier = DesktopMoveSensitivity * DesktopShiftFactor, NeededButtons = new KeyCode[] { KeyCode.LeftShift } }; var mouseTeleport = new MouseClickGesture(OnDoubleClickOrTap) { ClickNumber = 2 }; listener.AddListeners(mouseZoom, mouseAltZoom, mousePan, mouseLeftClickRotate, mouseRotateCamera, moveCamera, moveCameraDouble, mouseTeleport); // Subscribe to touch events var touchZoom = new TouchPinchGesture(ZoomMobile) { Multiplier = TouchZoomSensitivity, DetectionThreshold = TouchZoomThreshold }; var touchPan = new TouchPanGesture(Pan) { FingersNumber = 2, Multiplier = -Vector2.one * TouchPanSensitivity, DetectionThreshold = TouchPanThreshold }; var touchRotate = new TouchPanGesture(RotateAroundPivot) { Multiplier = Vector2.one * TouchRotateSensitivity }; touchRotate.onPanStart += StartRotateAroundPivot; var touchTeleport = new TouchMultiTapGesture(OnDoubleClickOrTap) { TapNumber = 2 }; listener.AddListeners(touchZoom, touchPan, touchRotate, touchTeleport); }