Обнаружение пользователя в единстве с kinect sdk

Я использую Unity 4.0.1 с kinect sdk 1.6 и разрабатываю с помощью С# (импортированная оболочка kinect),

В проекте, когда пользователь выходит за пределы диапазона или одна из костей не может быть захвачена из-за того, что пользователь не точно находится в диапазоне kinect, я хочу отобразить сообщение.

Я попробовал «код для обнаружения людей» в обнаружение пользователя Kinect

Это решение дает ошибку компиляции, например

«Активы/Kinect/KinectModelControllerV2.cs(93,10): ошибка CS0246: не удалось найти имя типа или пространства имен «DepthImageFrame». Вам не хватает директивы использования или ссылки на сборку?»

Я импортировал Kinect и попытался импортировать DepthImageFrame, чтобы проверить, работает ли он, но ничего не изменилось.


person togikan    schedule 19.04.2013    source источник
comment
Вы напрямую скопировали код из этого поста или разработали его сами? Непонятно, что такое DepthImageFrame и откуда он берется.   -  person Lojko    schedule 20.04.2013
comment
Тег единства предназначен для Microsoft Unity. Не злоупотребляйте этим.   -  person Lex Li    schedule 07.05.2013


Ответы (2)


Примеры из Kinect for 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
            }
        }
    }
}
person Nicholas Pappas    schedule 19.04.2013

Извините за мой плохой английский.

Причина в том, что оболочка использует Kinect SDK 1.0, а вы используете Kinect SDK 1.6.

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

person mao    schedule 20.04.2013