2016年3月更新
谷歌已经发布了一个官方的 iOS CardboardSDK。然而,目前它是一个封闭源代码的预编译库。
谷歌 CardboardSDK 的 iOS 版本。
Treasure 示例完全运行,带有磁铁触发检测。在运行 iOS 8 的 iPhone 6 和运行 iOS 7 的 iPhone 5 上成功测试。
它(主要)与 Android 的 CardboardSDK v0.5.1 具有相同的功能。
提供了一个捆绑的样本 Unity 项目,与 Unity 5.0.0f4 兼容(使用其他 Unity 版本存在风险)。
Unity\Cardboard.UnityProject
文件夹包含了基于 Google 的 CardboardSDK-Unity 插件 的样本项目。
有两种方法可以在 iOS 设备 上运行 Unity 项目
您可以使用捆绑的预建 Unity Xcode 项目,但您需要重新生成 libiPhone-lib.a
,因为它太大而无法提交到 GitHub。
这种方法在更改 Unity 项目 或其 Cardboard Unity 脚本 后更新 Xcode 项目 时很有用。
文件 -> 构建设置
,选择 iOS
,然后单击 构建
。将已存在的 Unity\Cardboard.UnityProject\builds\iOS
作为输出文件夹,并单击 追加
。然后 Unity 应更新您当前项目所需的 Unity 库二进制文件,而不会覆盖 CardboardSDK 的原生代码。Unity\Cardboard.UnityProject\builds\iOS\Unity-iPhone.xcodeproj
并在 iOS 设备 上运行(在 Xcode 6.2 上进行了测试)。您可以忽略 Unity\Cardboard.UnityProject\builds\iOS\
文件夹,并从头开始构建自己的项目。
此方法适用于您在更新到较新版本的 Unity 后重新构建 Unity Xcode项目 的情况(较新版本的 Unity 不允许您在已经构建的 Xcode 项目上追加)。
文件 -> 构建设置
,选择 iOS
,点击 构建
并将其保存到您的任何一个文件夹。将文件添加到 "Unity-iPhone"
。无需复制 CardboardSDK 源文件,只需通过取消选中 所需时复制项目
在原始位置链接它们。Unity-iPhone 目标
-> 构建阶段
-> 链接二进制与库
并添加 GLKit.framework
。C++ 语言方言
设置为 GNU++11
。Matrix3x3d
和 Vector3d
。CBStereoGLView
类允许任意 UIView
渲染到 OpenGL
。您可以为其应用程序叠加(对镜头失真校正进行了正确应用)进行子类化。参见 Treasure 示例上的 TextOverlayView
子类。
避免在每一帧更新纹理,因为这是一项昂贵的操作(进行 UIView
动画不是一个好主意)。
HeadTracker
可以使用以下任一方法:
OrientationEKF
类以及原始陀螺仪和加速度计数据。具有非常低的延迟,但受到陀螺仪漂移(静止时轻微连续旋转运动)的困扰。这是当前 Android 的 CardboardSDK 方法。CMDeviceMotion.attitude
。改善了陀螺仪漂移,但显著增加了延迟(《CoreMotion》执行其自己的类似 EKF 的内部 IMU 混合算法)。CMDeviceMotion.attitude
数据与 Google 的 OrientationEKF
。集两者之所长:低延迟和低陀螺仪漂移,但消耗更多 CPU(基本上它执行了 IMU 集成两次)。通常建议使用 HEAD_TRACKER_MODE_CORE_MOTION_EKF
。
在 HeadTracker.mm
中,您可以设置 #define HEAD_TRACKER_MODE
为 HEAD_TRACKER_MODE_EKF
、HEAD_TRACKER_MODE_CORE_MOTION
或 HEAD_TRACKER_MODE_CORE_MOTION_EKF
。
CardboardSDK-iOS,就像原始的 CardboardSDK 一样,在 Apache 许可证 下提供。有关更多信息,请参阅 LICENSE
文件。
详情请参阅 AUTHORS.md
,了解项目的部分贡献者。