Обнаружение пользователя в единстве с Kinect SDK
Я использую Unity 4.0.1 с Kinect SDK 1.6 и разработки с C# (импортная оболочка Kinect),
В проекте, когда пользователь выходит за пределы диапазона или одна из костей не может быть захвачена из-за того, что пользователь не совсем в диапазоне kinect, я хочу отобразить сообщение.
Я пробовал "код для обнаружения людей" в Kinect User Detection
Это решение дает ошибку компиляции как
"Assets/Kinect/KinectModelControllerV2.cs(93,10): ошибка CS0246: не удалось найти тип или имя пространства имен`DepthImageFrame'. Вам не хватает директивы using или ссылки на сборку?"
Я импортировал Kinect и попытался импортировать DepthImageFrame для проверки, если он работает, но ничего не изменилось.
2 ответа
Примеры, представленные в Kinect для Windows Toolkit и код, расположенный на сайте Kinect для 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
}
}
}
}
Извините за мой плохой английский.
Причина в том, что оболочка использует Kinect SDK 1.0, а вы используете Kinect SDK 1.6.
http://channel9.msdn.com/coding4fun/kinect/Unity-and-the-Kinect-SDK.