android - 从脚本加载不同的查看器配置文件

标签 android unity-game-engine google-cardboard

Google Cardboard SDK 允许我们通过扫描设置中的二维码从 Unity 应用加载任何 VR 查看器配置文件。我已经为不同的 VR 耳机准备了不同的二维码,我想从脚本加载它们,以便用户可以从我的菜单中选择他们的设备,而无需在互联网上搜索正确的二维码并进行扫描。

我尝试扫描并设置自定义 VR 查看器配置文件,该配置文件按预期工作。我尝试通过使用以下内容序列化 Cardboard 类中的 CardboardProfile 对象来将此配置文件保存在 sdcard 上:

Serialize (file,Cardboard.device.Profile);

然后我尝试在 Cardboard 初始化时加载此自定义配置文件。 我在 Cardboard 类的 InitDevice() 函数中将 Profile 变量设置为我的自定义配置文件:

device = BaseVRDevice.GetDevice();
device.Profile = GetComponent<ProfileReader>().Load ();
device.Init();

哪里GetComponent<ProfileReader>().Load ()从 Resources 文件夹返回我的自定义反序列化 CardboardProfile(我在其中从 sdcard 复制带有序列化对象的文件)。我将所有需要的变量设置为公共(public),并调整了 setter ,以便我可以访问它们。 (反)序列化步骤工作正常。我的 CardboardProfile C# 对象是有效的,我仔细检查了这些值。但扭曲和视口(viewport)不会改变。它仍然设置为默认查看者配置文件。

知道如何通过脚本更改这些 VR 观看者配置文件吗?

谢谢

最佳答案

好的,找到了。对于那些想要通过脚本更改 VR 查看器配置文件的人,请查看 VRDevice.cs 文件,尤其是 UpdateView()UpdateProfile () 函数。 它们通过 GetViewParameters(viewData)GetProfile(profileData) 调用加载两个 float 组。这些数组(viewData 和 profileData)可以轻松保存、序列化和加载。确保随后调用 UpdateScreenData() 以应用更改。

关于android - 从脚本加载不同的查看器配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721293/

相关文章:

android - 避免代码重复 - 如何在 gradle 中创建函数(并调用它们)?

java - 在Android项目中使用gradle的问题

android - 如何将项目从一个 gridview 拖放到同一布局中的另一个 gridview?

unity-game-engine - GetComponent 要求请求的组件 'AudioSource[]' 派生自 MonoBehaviour 或 Component 或者是一个接口(interface)

unity-game-engine - Firebase 不在 Unity SDK 中创建用户

c# - PlayerPrefs 不适用于 Android 和编辑器

android - GvrViewerMain 自己旋转相机。 Unity3D + 谷歌VR

android - Firebase 版本 : 8. 1.0 低于 google-services 插件所需的最低版本 (9.0.0)

javascript - 如何缩放 block 元素以在不同的移动屏幕上显示相同的大小?

ios - Xcode中用于Unity Demo的Google Cardboard SDK的构建错误