UnityでSurfaceペンをサポートする方法は?


18

私たちのゲームはタッチまたはマウスでうまく機能しますが、Surfaceペンはポインティングデバイスとしてまったく登録されていないようです。ネイティブビルドでUnityのペンをどのようにサポートできますか?

Unity Answersサイトのこの質問は、UWPアプリとしてビルドできることを示唆していますが、それは、.NETフレームワークの非常に限られたサブセットに限定することを意味します(具体的には、多くのシリアル化ライブラリを失います)。


タッチ入力として扱うことができますか?
エヴォラー

@Everlor、それはUnityにタッチ入力として登録しません。そうする方法を知っていれば、それは素晴らしいことです。
グレゴリーエイヴリーウィアー

@ArcaneEngineerよくわかりません。現時点では(1)は非常にトリッキーに見えますが、どうすればよいかわかりません(2)。OSに組み込まれた入力システムの1つをサポートすることは、特に難しいとは思えませんが、リソースを見つけることができません。
グレゴリーアヴェリーウィアー

2
あなたのような他の場所には答えが見つかりませんでした。(2)の場合、Unityアプリによって呼び出されるDLL、またはアプリと一緒に実行されているWindowsサービス(またはサービスが機能しない場合はWinアプリケーション)が必要です。適切なMicrosoft API(ペン、私は思う)からそのサービス/アプリの入力を取得し、そのデータをIPC経由で Unityアプリケーションにルーティングする必要があります。UnityダイレクトへのDLLフックは簡単に見えます。しかし、問題のAPIにアクセスできますか?- よく分かりません。
エンジニア

回答:


0

SP3では、ペンはhttps://docs.unity3d.com/ScriptReference/Input-mousePosition.htmlで動作し、x、y、0z座標を持つVector3を返します。LinuxでUnity 5.6を使用していますが、Windowsでペンがタッチ入力として表示されない場合、同じ動作をしていると思います。


3
これはコメントであり、「ネイティブビルドのUnityでペンをどのようにサポートできますか?」という質問に対する答えではありません。
エンジニア

1
質問にコメントするのに十分な担当者がいないため、これは機能します。Windows 10およびUnity 5.2を搭載したSP3でこれを再度テストし、表面ペンの位置をマウスのように正しく報告していました。
user3362964

驚くばかり!ペンの位置は実際に報告されますが、ペンのタップはマウスクリックとして登録されないため、私は気付きませんでした。ペンタップをマウスクリック(または何らかの入力)として認識する方法についての洞察はありますか?
グレゴリーエイヴリーウィアー

1
ペンの移動が停止したことを検出することで、何かハックすることもできますが、タップを適切に検出するUnity入力APIには何も見つかりませんでした。@Arcane Engineerの提案の1つを使用し、ゲームにデータを渡す外部の何かを使用する必要があると思います。
user3362964
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.