XRKJ is a special joystick designed for use with Unity's XR Interaction Toolkit. Its handle mesh always faces forward, and it works predictably in any orientation, including upside down and at an angle. The joystick is designed to be user-friendly while maintaining accessibility and options for advanced users.
XRKJ is an almost plug-and-play joystick that is easy to use. Out of the box, the joystick is grabbable and can be manipulated, and all you need to do is write receiving code for the object you want to control. The included demo scene has examples of different ways the joystick(s) can be used.
This asset is great for creating things like arcade games and claw machines. However, it is essentially just a directional controller, so you can control anything that uses a value.
Some limitations include the need to know how to write some C# to add logic to the objects you want to control, unless using one of the demo scripts is enough for your purposes.
Technical Details:
XRKJ automatically works with Unity's XR and MR players, and it works in any orientation while maintaining rotations appropriate to a joystick. Any of the meshes can be replaced with models of your choice, and XRKJ can also be used as a simple knob. The XRJK Controller (Script) uses a scriptable float object and/or a delegate to communicate to other scripts.