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/