用户检测与kinect sdk统一

时间:2013-04-19 16:05:43

标签: unity3d wrapper kinect kinect-sdk

我正在使用带有kinect sdk 1.6的Unity 4.0.1并使用c#(导入的kinect包装器)进行开发,

在项目中,当用户超出范围或由于用户不完全在kinect范围内而无法捕获其中一个骨骼时,我想显示一条消息。

我曾尝试过“检测人类的代码” Kinect user Detection

此解决方案会产生类似

的编译错误

“Assets / Kinect / KinectModelControllerV2.cs(93,10):错误CS0246:找不到类型或命名空间名称”DepthImageFrame“。您是否缺少using指令或程序集引用?”

我已经导入了Kinect并试图导入DepthImageFrame,如果它可以工作,但没有任何改变。

2 个答案:

答案 0 :(得分:0)

Kinect for Windows Toolkit中提供的示例和位于Kinect for Windows CodePlex网站上的代码中充满了如何检测玩家的示例。

立刻想到“骷髅基础”的例子,然后是“形状游戏”的例子。

SkeletonFrameReady回调中检测玩家的基本流程如下:

Skeleton[] skeletons = new Skeleton[6];

private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
    using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
    {
        if (skeletonFrame != null)
        {
            skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
            skeletonFrame.CopySkeletonDataTo(skeletons);
        }
    }

    if (skeletons.Length != 0)
    {
        foreach (Skeleton skel in skeletons)
        {
            if (skel.TrackingState == SkeletonTrackingState.Tracked)
            {
                // `skel` is an actively tracked skeleton
                // do what you wish with it
            }
        }
    }
}

答案 1 :(得分:0)

抱歉我的英语不好。

原因是因为包装器使用Kinect SDK 1.0而您使用的是Kinect SDK 1.6。

http://channel9.msdn.com/coding4fun/kinect/Unity-and-the-Kinect-SDK