Creating ArcRotateCamera controls

Hi,

I want to create a special type of camera control where:

  • the left mouse button rotates the camera such that the camera keeps fixated on a certain position regardless of the rotation (not completed, but optional)
  • the scroller wheel moves the camera forward/back (completed)
  • the right mouse button moves the camera along the xy-plane, without changing its z-position, depending on the position of the mouse on the screen.

For the right mouse button controls, I have tried to use different functions to achieve this, but using Add World Offset does not properly account for which way the pawn for the camera is facing (i.e. it might go left if I drag my mouse to the right), and Add Local Offset allows the pawn to go down/up the z-axis.

Additionally, since I can’t move the pawn itself and I move the DefaultSceneRoot instead, I cannot block where my camera goes with a BlockingVolume or CameraBlockingVolume.

How can I fix the above? Thanks.