将LeapMotion坐标转换为Unity坐标

问题描述 投票:1回答:1

我正在使用Unity和LeapMotionController。对于我的项目,我想在手掌上显示一个对象。

我认为它会以这种方式工作(请参阅代码部分)。但是坐标非常不同...

在LeapMotion V2中,SDK中有一种方法可以转换此坐标。但是在4.4中,不再有这种情况了

  • 试图以这种方式缩放这些坐标,但这不是我想要的结果
...

void Update()
{
    Frame frame = controller.Frame ();
    for (int h = 0; h < frame.Hands.Count; h++) {
       Hand leapHand = frame.Hands [h];
       Vector3 handPostition = new Vector3(leapHand.PalmPosition.x, leapHand.PalmPosition.y, leapHand.PalmPosition.z)  
    }
}

...

我需要从手掌获得确切的坐标才能显示相对于手掌的3D对象。

c# unity3d coordinates leap-motion
1个回答
1
投票

获得手掌位置的最简单方法是通过使用jumpHand上的ToVector3()函数。

Vector3 handPostition = leapHand.PalmPosition.ToVector3();

如果您还想轮换,请致电

Quaternion handRotation = leapHand.Rotation.ToQuaternion();

如果您正在寻找一种方法来一次获得所有这些,请致电

Leap.Unity.Pose pose = leapHand.GetPalmPose();
Vector3 handPosition = pose.position;
Quaternion handRotation = pose.rotation;
© www.soinside.com 2019 - 2024. All rights reserved.