2016-09-15 49 views
0

PreInformation:使用的Kinect v2和Unity3D V5.4如何Kinect的ColorSpacePoint转换成统一WorldPoint

背景:我已编程方式创建GameObject对象,如立方体和球体。这些GameObject项目的位置我设置为:gameObject.transform.position。使用Kinect,我正在检测用户当前的Handposition。我想要做的是检查Handposition是否接近创建的GameObject的位置。

问题:我现在的问题是我如何转换handposition。该handposition我从CameraSpacePoint转换为ColorSpacePoint

ColorSpacePoint csPoint=_Sensor.CoordinateMapper.MapCameraPointToColorSpace(handPosition); 

如何我现在可以将这些ColorSpacePoint对象统一位置(transform.position)?

+0

为什么要将它从CameraSpace转换为ColorSpace?听起来就像你想要的手的3D位置,这是在CameraSpace中的 – HenningJ

回答

0

cspoint和transform.position都是两种不同类型的向量:cspoint是一个2d向量,transform.position是一个3d向量。

所以,你需要的是一个转换函数。

Vector3 toUnityVector3(ColorSpacePoint point) 
{ 
    return new Vector3(point.x,point.y,0); //swap the parameters around as you see fit 
}