EDIT: Just a note, this is using the unitypackage Orion Beta 4.0.1 (newest version when I made this post)
I've just started messing with the leap motion, so maybe I'm just blind to something, but why is it so complex to get things positions and rotations? I can understand that it's converting things from the leaps coordinate system to unity's, but still. I've been messing with it for hours, looking through the documentation, simply trying to get an object to be in the same position and rotation as the palm of the hand. That's it, pretty simple. Off of that would be a push button like menu, just like is shown in the orion demo. But I have been messing with it for hours and hours (porbably at least 8 hours at this point) and have only gotten the position working after just messing around, since none of the examples in the documentation seemed to actually work. It's rather annoying.
Getting the hands to show up was easy enough, but everything past that has been horrible. I had to switch the y and z axis, as well as make x and z negative just to get the position right. Here's my code:
Vector3 newPos = hand.PalmPosition.ToUnity()/1000;
newPos = new Vector3(-newPos.x, -newPos.z, newPos.y);
guiController.transform.localPosition = newPos;
And ToUnityScaled seems to be giving me the same value as ToUnity, so that doesn't help. I still have yet to figure out what I have to do to get rotations that actually work. The documentation says that a Leap.Vector should have a forward, in which case I could set the rotation equal to the forward, but it's not actually there when you try to code it.
Why isn't there a simple thing like "ToUnity" that just gives the world position in a vector3 or a world rotation in a quaternion? I'm not trying to be a jerk, but it's just horrible as far as ease of use. Please tell me if I'm doing something wrong and there is something that's simple and easy and doesn't require complex manipulations of data that should just be output like the engine expects.
I can understand it's a complex system, and that the orion stuff is new, but still, it's upsetting how hard it is to get information. You can't just do something like hand.palm.rotation as it is, and you should be able to. Like I said, I still have yet to figure out how to convert the values of rotation to a useable form. The closest I've gotten was something like (hand.PalmNormal.ToUnity()/Mathf.PI)*180. Doing that actually scales everything right at least, but all the angles are messed up, and seem to have gimbal locking on them when you turn too far.
Am I really just missing something?