我正在使用带有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,如果它可以工作,但没有任何改变。
答案 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