Wie werden Oberflächenstifte in Unity unterstützt?

17

Unser Spiel funktioniert hervorragend mit Touch oder Maus, aber der Surface-Stift scheint sich überhaupt nicht als Zeigegerät zu registrieren. Wie können wir den Stift in Unity in einem nativen Build unterstützen?

Diese Frage auf der Unity Answers-Website legt nahe, dass wir sie als UWP-App erstellen könnten. Dies bedeutet jedoch, dass wir uns auf eine sehr begrenzte Teilmenge des .NET-Frameworks beschränken (insbesondere verlieren wir viele Serialisierungsbibliotheken).

Gregory Avery-Weir
quelle
Können Sie es einfach als Berührungseingabe behandeln?
Evorlor
@Everlor, es wird bei Unity nicht als Berührungseingabe registriert. Wenn Sie wissen, wie es geht, wäre das großartig.
Gregory Avery-Weir
@ArcaneEngineer Ich bin nicht sicher; im Moment sieht (1) sehr knifflig aus und ich bin mir nicht sicher, wie ich (2) überhaupt machen soll. Es scheint nicht besonders schwierig zu sein, eines der integrierten Eingabesysteme eines Betriebssystems zu unterstützen, aber ich kann überhaupt keine Ressourcen dafür finden.
Gregory Avery-Weir
2
Ich habe anderswo keine Antworten gefunden, so wie Sie. Für (2) benötigen Sie eine DLL, die von Ihrer Unity-App aufgerufen wird, oder einen Windows-Dienst (oder eine Win-Anwendung, wenn ein Dienst die Aufgabe nicht übernimmt), der neben Ihrer App ausgeführt wird. Sie müssen die Eingaben in diesem Dienst / dieser Anwendung von der entsprechenden Microsoft-API (Pen, glaube ich) abrufen und diese Daten über IPC an Ihre Unity-Anwendung weiterleiten . Das direkte Einbinden von DLLs in Unity sieht einfacher aus. Aber könnte es Zugriff auf die fragliche API bekommen? - Ich bin mir nicht sicher.
Ingenieur

Antworten:

0

Auf meinem SP3 arbeitet der Stift mit https://docs.unity3d.com/ScriptReference/Input-mousePosition.html und gibt einen Vector3 mit den Koordinaten x, y und 0z zurück. Ich verwende Unity 5.6 unter Linux, aber wenn der Stift unter Windows nicht als Berührungseingabe angezeigt wird, gehe ich davon aus, dass er dasselbe Verhalten aufweist.

user3362964
quelle
3
Dies ist ein Kommentar, keine Antwort auf die Frage: "Wie können wir den Stift in Unity in einem nativen Build unterstützen?" .
Ingenieur
1
Ich habe nicht genug Repräsentanten, um die Frage zu kommentieren, und das funktioniert. Ich habe dies erneut mit einem SP3 mit Windows 10 und Unity 5.2 getestet und es wurde die Position des Oberflächenstifts korrekt gemeldet, als wäre es eine Maus.
user3362964
Genial! Die Stiftposition wird in der Tat gemeldet, aber ich habe es nicht bemerkt, weil Stiftklicks nicht als Mausklicks registriert werden. Haben Sie einen Einblick, wie Sie Stifttipps als Mausklicks (oder Eingaben jeder Art) erkennen können?
Gregory Avery-Weir
1
Sie könnten vielleicht etwas hackiges tun, wenn Sie feststellen, dass sich der Stift nicht mehr bewegt, aber ich habe in der Unity-Eingabe-API nichts gefunden, was die Klicks richtig erkennt. Ich denke, Sie müssten einen der Vorschläge von @Arcane Engineer verwenden und etwas Externes verwenden, das die Daten in Ihr Spiel überträgt.
user3362964