大家好,我有以下代码块
using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
{
if (skeletonFrame != null)
{
Skeleton[] skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
skeletonFrame.CopySkeletonDataTo(skeletons);
foreach (Skeleton skeleton in skeletons)
{
if (skeleton.TrackingState == SkeletonTrackingState.Tracked)
{
//DoSomething();
}
else if (skeleton.TrackingState == SkeletonTrackingState.NotTracked)
{
//DoSomethingElse();
}
}
}
}
我的计划是调用一种方法,说明在跟踪玩家时检测到玩家。相反,没有人被追踪。本质上使用Kinect运动探测器(我知道只有人类)。但是看起来这个循环对我来说不正常。在调试器的帮助下,我可以看到我确实进入了DoSomething();
但是它会被卡住,并且不断重复DoSomething()
即使在玩家离开时应该做的同样的消息。
知道为什么会发生这种情况以及如何实现这个目标吗?