Unity3d 在使用谷歌硬纸板时,如何将传感器数据输入Unity?

Unity3d 在使用谷歌硬纸板时,如何将传感器数据输入Unity?,unity3d,google-cardboard,Unity3d,Google Cardboard,我已经加载了基本的GoogleCardwardUnity应用程序,并且运行良好 我想在我的手机上使用一些Unity中没有的传感器。例如,我想访问STEP_探测器传感器 我创建了我自己的UnityPlayerPractivity,没有纸板,它似乎工作得很好。我的问题是,我不知道如何将我的自定义UnityPlayerPractivity与纸板一起使用 据我所知,纸板演示使用UnityCardboardActivity类作为主要活动。我查看了UnityCardboardActivity.jar,它看起

我已经加载了基本的GoogleCardwardUnity应用程序,并且运行良好

我想在我的手机上使用一些Unity中没有的传感器。例如,我想访问STEP_探测器传感器

我创建了我自己的UnityPlayerPractivity,没有纸板,它似乎工作得很好。我的问题是,我不知道如何将我的自定义UnityPlayerPractivity与纸板一起使用

据我所知,纸板演示使用UnityCardboardActivity类作为主要活动。我查看了UnityCardboardActivity.jar,它看起来像是UnityCardboardActivity类继承自CardboardActivity,而不是UnityActivity

所以我猜UnityCardboardActivity是在其代码中的某个地方手动启动默认的UnityPlayerPractivity,但我无法更改它以任何方式启动我自己的自定义UnityPlayerPractivity

有没有办法不使用UnityPlayerPractivity获取传感器数据


我尝试让我的活动扩展UnityCardboardActivity,但由于某些原因,我无法访问getSystemService方法,因此无法访问任何传感器。

您能发布一些代码吗?此外,一种解决方案是使用一个本地dll,公开对您想要的所有传感器的访问,并使用Google提供的CardboardSDK Unity包与Unity一起使用。Unity 5 Personal允许这一点,并且是免费的这在Unity free for 4.X和更高版本中是不可能的事情是,我可以看到UnityCardboardActivity只是扩展了CardboardActivity,这是一个Google类,而不是Unity类。androidmanifest.xml仅显示作为主要活动列出的Cardboard活动,因此UnityCardboardActivity必须从其代码中启动UnityPlayerPractivity,我看不到修改它以使用我的活动的方法,因为我认为它是硬编码的。我尽量避免使用NDK和Unity,因为我的时间有限,所以我可能只是要实现我自己的步骤检测器。UnityCardboardActivity实际上并没有启动UnityPlayerPractivity,它取代了它,只是进行类似的调用。UnityPlayerActivity.java的源代码位于Unity安装目录中。我假设当您尝试从UnityCardboardActivity继承时,您修复了AndroidManifest以启动activity类?我不知道为什么不能调用getSystemService,除非是权限问题。嗯,我只是尝试复制并添加Carboard项目中的UnityCardboardActivity.jar文件,并将其作为库添加到Android Studio,就像我对UnityPlayerPractivity.jar所做的那样。它允许我从中创建一个继承类,但正如我所说的,我无法访问正常的Android活动类方法。我需要以不同的方式导入该文件吗?