Обнаружение игрока Kinect
Привет всем, у меня есть следующий блок кода
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()
должен делать, даже когда игрок уходит. Есть идеи, почему это происходит и как это сделать?