Как поддержать Surface ручки в Unity?

18

Наша игра прекрасно работает с сенсорным мышью или мышью, но перо Surface, кажется, вообще не регистрируется как указательное устройство. Как мы можем поддержать перо в Unity в нативной сборке?

Этот вопрос на сайте Unity Ответы предполагает, что мы могли бы создать его как приложение UWP, но это означает, что мы ограничиваемся очень ограниченным подмножеством .NET Framework (в частности, мы теряем много библиотек сериализации).

Грегори Эйвери-Вейр
источник
Вы можете просто воспринимать это как сенсорный ввод?
Evorlor
@Everlor, он не регистрируется в Unity как сенсорный ввод. Если вы знаете, как это сделать, это было бы здорово.
Грегори Эйвери-Вейр
@ArcaneEngineer Я не уверен; на данный момент (1) выглядит очень сложно, и я вообще не знаю, как это сделать (2). Поддержка одной из встроенных систем ввода операционной системы не кажется особенно сложной, но я вообще не могу найти в ней ресурсы.
Грегори Эйвери-Вейр
2
Я не нашел ответов в другом месте, как ты. Для (2) вам понадобится DLL, вызываемая вашим приложением Unity, или служба Windows (или приложение Win, если служба не будет выполнять эту работу), работающая вместе с вашим приложением. Вам нужно было бы получить входные данные в этой службе / приложении из соответствующего Microsoft API (думаю, Pen) и направить эти данные в ваше приложение Unity через IPC . Подключение DLL в Unity direct выглядит проще. Но может ли он получить доступ к рассматриваемому API? - Я не уверен.
инженер

Ответы:

0

На моем SP3 перо работает с https://docs.unity3d.com/ScriptReference/Input-mousePosition.html и возвращает Vector3 с координатами x, y и 0z. Я использую Unity 5.6 в Linux, но если перо не отображается как сенсорный ввод в Windows, я бы предположил, что оно ведет себя так же.

user3362964
источник
3
Это комментарий, а не ответ на вопрос: «Как мы можем поддержать перо в Unity в нативной сборке?» ,
инженер
1
У меня недостаточно представителей, чтобы комментировать вопрос, и это работает. Я снова проверил это с SP3 с Windows 10 и Unity 5.2, и он правильно сообщал о местоположении поверхностного пера, как если бы это была мышь.
user3362964
Потрясающие! Положение пера действительно сообщается, но я не осознавал этого, потому что касания пера не регистрируются как щелчки мыши. Есть ли у вас какие-либо идеи о том, как распознать касания пером как щелчки мышью (или любой тип ввода)?
Грегори Эйвери-Вейр
1
Возможно, вы могли бы сделать что-то нехорошее, обнаружив, когда ручка перестает двигаться, но я не нашел ничего во входном API-интерфейсе Unity, который бы правильно распознавал нажатия. Я думаю, что вам нужно использовать одно из предложений @Arcane Engineer и использовать что-то внешнее, которое передает данные в вашу игру.
user3362964