#unity3d #hololens #mrtk
Вопрос:
Я пытаюсь зарегистрировать Вектор3, соответствующий данным взгляда глаз на Hololens 2. Мой вывод .csv в редакторе в порядке, но, работая на реальном HL2, я могу проверить, что мой EyeGazeProvider равен нулю, и, следовательно, данные не регистрируются. В приведенном ниже коде (пример сценария MS, который я изменяю) я никогда не вхожу в цикл после проверки «eyeGazeProvider != null».
Я включил эту функцию в Unity для EyeGaze и проверил ее в файле .appxmanifest. Кроме того, у меня есть как поставщик XRSDK Windows для смешанной реальности, так и его аналог OpenXR в качестве части моих поставщиков входных данных. У меня также есть профиль EyeGazeInteraction, как и требуется. Я действительно в тупике.
Поставщики пристального взгляда
Настройки OpenXR
var eyeGazeProvider = CoreServices.InputSystem?.EyeGazeProvider;
if (eyeGazeProvider != null)
{
gameObject.transform.position = eyeGazeProvider.GazeOrigin eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters;
EyeTrackingTarget lookedAtEyeTarget = EyeTrackingTarget.LookedAtEyeTarget;
// Update GameObject to the current eye gaze position at a given distance
if (lookedAtEyeTarget != null)
{
// Show the object at the center of the currently looked at target.
if (lookedAtEyeTarget.EyeCursorSnapToTargetCenter)
{
Ray rayToCenter = new Ray(CameraCache.Main.transform.position, lookedAtEyeTarget.transform.position - CameraCache.Main.transform.position);
RaycastHit hitInfo;
UnityEngine.Physics.Raycast(rayToCenter, out hitInfo);
gameObject.transform.position = hitInfo.point;
}
else
{
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = eyeGazeProvider.GazeOrigin eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters;
}
}
else
{
// If no target is hit, show the object at a default distance along the gaze ray.
gameObject.transform.position = eyeGazeProvider.GazeOrigin eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters;
}
}
Комментарии:
1. В качестве теста, не могли бы вы попробовать развернуть примеры EyeTrackingDemo, которые находятся по адресу Assets/MRTK/Примеры/Демонстрации/EyeTracking/Сцены на вашем устройстве? Вы видите такое же поведение? Это поможет сузить круг вопросов, связанных с вашей конфигурацией или с вашей сценой.
2. Работает нормально. Проследил за взглядом, но я не пытался ничего регистрировать. Серая иконка также показывала, куда я смотрю. Это также происходит, когда я запускаю свою программу, и я могу смотреть и выбирать объекты жестом «ущипнуть». Однако по-прежнему не удается войти в систему.
3. Как бы то ни было, я думаю, что взломал его. Это был вовсе не газетчик. Это проблема с тем, как я пишу в свой файл .csv. Что-то связанное с нарезанием резьбы. Ценю вашу помощь, этот вопрос помог заставить соки течь.