OpenNI communications for Unity is probably the best way. The NITE skeleton is more stable than the Microsoft Kinect SDK, but still requires calibration (PrimeSense mentioned that they will soon have an immortal skeleton).
There are OpenNI bindings from the Kinect SDK that make the Kinect SDK look like a SensorKinect, this module also provides the oil-free KinectSDK skeleton as an OpenNI module:
https://www.assembla.com/code/kinect-mssdk-openni-bridge/git/nodes/
Since KinectSDK also provides ankles and wrists, and OpenNI already supported it (although NITE did not support it), all OpenNI materials, including Unity unitary drilling machines, included ankles and wrists, all work without calibration. KinectSDK binding for OpenNI also supports the use of the NITE skeleton and hand trackers, with one caveat, it seems that NITE gesture detection does not work with the Kinect SDK yet. The job of using KinectSDK with the NITE handGenerator is to use skeleton-free tracking to provide you with a manual point. Unfortunately, you lose the ability to simply track your hands when your body is not visible to the sensor.
However, the NITE skeleton looks more stable and more responsive than KinectSDK.
source share