如果您希望您的游戏不使用陀螺仪手机,请使用Fibrum SDK
例如试试
太空X猎人VR:
https://play.google.com/store/apps/details?id=com.creation3d.spacexhuntervr
VR碗:
https://play.google.com/store/apps/details?id=com.creation3d.vrbowl
来自Fibrum的游戏
Google cardboard的网站上有一个设备 兼容性列表 : 它似乎有些不完整,所以我试着看看Cardboard.jar 源代码 。 HeadTracker.java似乎有以下逻辑:
SensorManager sensorManager = (SensorManager)HeadTracker.this.mContext.getSystemService("sensor"); for (int sensorType : HeadTracker.INPUT_SENSORS) { Sensor sensor = sensorManager.getDefaultSensor(sensorType); sensorManager.registerListener(HeadTracker.this.mSensorEventListener, sensor, 0, handler); }
与INPUT_SENSORS定义在同一个文件中
{TYPE_ACCELEROMETER,TYPE_GYROSCOPE};
我不确定HeadTracker是否可以在只有其中一个传感器的手机上工作。我的猜测是两者都是必要的。
您的应用可能需要某些审查,以便在您的清单中使用以下行运行(或甚至在Android市场上可见):
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" /> <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" />
您还可以使用SensorManager检查传感器在运行时是否可用于您的应用程序 public Sensor getDefaultSensor (int type) 功能。
public Sensor getDefaultSensor (int type)
谷歌纸板耳机不适用于加速度计,它需要陀螺仪。
加速度计可以检测施加到手机的力。这包括读取地球的引力,因此手机可以估计“向下”的位置。但加速度计无法准确地告诉您在3d空间中的方向是什么,它只能基于它所读取的力来近似。
这对于VR的精度来说太低了,所以这就是你需要陀螺仪的原因。
如果您已经准备好在非陀螺仪手机上工作,您可以根据加速度计数据编写一段近似于手机方向的代码,但请记住,它与真正令人满意的VR体验相差甚远。