禁用Microsoft PixelSense(aka Surface)表面外壳超时

时间:2012-10-25 18:29:23

标签: unity3d timeout pixelsense

我正在为 Unity 编写的 Microsoft PixelSense 编写游戏,通过SurfaceToTUIO网桥和unity3d-tuio Unity与表进行通信插件。

我目前正试图让游戏与微软PixelSense 启动器很好地配合。我已经能够通过模仿Surface Bing应用程序让我的应用程序出现在启动器中 - 在C:\ ProgramData \ Microsoft \ Surface \ v2.0 \ Programs中复制指向XML文件的链接并在适当的位置创建相应的XML格式。

当我进入Surface模式时 - 通过专用的Surface用户帐户,或通过管理员配置文件上的Surface Shell,启动栏上的游戏正确显示,并且我设置了自定义图标XML。游戏从栏中正确启动,我可以无任何错误播放两分钟

此时,启动器关闭我的游戏。通过一些研究,我了解了应用程序的责任dismiss the Launcher

由于这是Microsoft PixelSense SDK的一部分而Unity无法访问,我尝试了各种方法来解决这个问题:

  • 我尝试在单一应用程序模式下运行游戏。事实证明,有一个不同的超时仍在等待 SignalApplicationLoadComplete 调用。
  • 我尝试使用Registry中的 CriticalProcessMonitoring禁用 ApplicationProcessMonitoring禁用键。
  • 我尝试将 LoadingScreenTimeout SingleAppLoadingScreenTimeout Registry Keys设置为0 - 低于其有效阈值。

我想要的是为我的用户提供进出Unity游戏的最流畅的体验。目前,我们必须从Windows桌面启动我们的游戏,由于Windows无法区分finger touching the screen, and a palm hovering above the screen,因此可能会使用户感到沮丧。

有没有人有解决方法,很好地理解我如何从Unity中欺骗SignalApplicationLoadingCall,或建议尝试一些东西?

谢谢!

更新:我发现了一些不起作用的东西:

  • 我在C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ Microsoft.Surface \ v4.0_2.0.0.0__31bf3856ad364e35找到 Microsoft.Surface DLL 。我将它导入到我的Unity项目中,但收到了一个System.TypeLoadException,看起来DLL是用.NET 4.0编译的,Unity目前不支持。
  • 我无法找到任何允许我在不需要DLL的情况下与启动器通信的 COM objects
  • 我无法使用 XNA包装程序,因为根据this post,System.Diagnostics.Process.Start在Surface模式下不起作用。

0 个答案:

没有答案