如何在Unity中支持Surface笔?


18

我们的游戏可以很好地与触摸或鼠标配合使用,但是Surface笔似乎根本没有注册为定点设备。我们如何在原生版本的Unity中支持笔?

这个问题Unity Answers网站上的表明我们可以将其构建为UWP应用,但这意味着将自己限制为.NET框架的一个非常有限的子集(特别是,我们失去了很多序列化库)。


您可以将其视为触摸输入吗?
Evorlor '17

@Everlor,它没有注册为Unity的触摸输入。如果您知道如何做到这一点,那就太好了。
Gregory Avery-Weir

我不确定@ArcaneEngineer; 目前(1)看起来很棘手,我不确定该怎么做(2)。支持一个操作系统的内置输入系统似乎并不特别困难,但是我根本无法在其上找到任何资源。
格雷戈里·艾弗里·威尔

2
我在其他地方找不到像您一样的答案。对于(2),您需要一个由Unity应用程序调用的DLL,或者一个与应用程序一起运行的Windows服务(或Windows应用程序(如果服务无法完成工作,则为Win应用程序))。您需要从适当的Microsoft API(我认为是Pen)中获取该服务/应用程序中的输入,然后通过IPC将数据路由到Unity应用程序。DLL挂接到Unity Direct看起来更容易。但是它可以访问有问题的API吗?- 我不确定。
工程师

Answers:


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

太棒了!确实会报告笔位置,但是我没有意识到,因为笔点击不会记录为鼠标单击。您对如何将笔触识别为鼠标单击(或任何形式的输入)有任何见解?
Gregory Avery-Weir

1
您可能在检测笔何时停止移动时做一些怪异的操作,但是我在Unity输入api中找不到能正确检测到笔触的任何内容。我认为您将不得不使用@Arcane工程师的建议之一,并使用将数据传递到游戏中的外部工具。
user3362964
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.