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

Android 从脚本加载不同的查看器配置文件,android,unity3d,google-cardboard,Android,Unity3d,Google Cardboard,谷歌硬纸板SDK允许我们通过扫描设置中的二维码,从Unity应用程序加载任何VR查看器配置文件。我已经为不同的VR耳机提供了不同的QR码,我想从脚本中加载它们,这样用户就可以从我的菜单中选择他们的设备,而无需在互联网上搜索正确的QR码并进行扫描 我试图扫描并设置一个自定义的VR查看器配置文件,该配置文件按预期工作。我试图通过使用如下内容序列化Carcard类中的CardboardProfile对象,将此配置文件保存到SD卡上: Serialize (file,Cardboard.device.P

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

我试图扫描并设置一个自定义的VR查看器配置文件,该配置文件按预期工作。我试图通过使用如下内容序列化Carcard类中的CardboardProfile对象,将此配置文件保存到SD卡上:

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

device = BaseVRDevice.GetDevice();
device.Profile = GetComponent<ProfileReader>().Load ();
device.Init();
device=BaseVRDevice.GetDevice();
device.Profile=GetComponent().Load();
device.Init();
其中
GetComponent().Load()
返回资源文件夹中的自定义反序列化CardboardProfile(我在其中从SD卡复制带有序列化对象的文件)。我将所有需要的变量设置为public,并调整了setter,以便能够访问它们。(反)序列化步骤工作正常。我的CardboardProfile C#对象有效,我仔细检查了值。但变形和视口不会改变。它仍然设置为默认的查看器配置文件

知道如何从脚本更改这些VR查看器配置文件吗


谢谢

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

< P>这不太正确,因为它只告诉Unity层关于加载的配置文件,而不是C++层。此外,从脚本设置配置文件并不意味着SDK的使用方式,因为您的应用程序正在霸占配置文件,覆盖用户通过扫描二维码所做的选择

根据答案,您可以在carboard.cs中设置默认配置文件

例如:

public Uri DefaultDeviceProfile = new Uri("http://google.com/cardboard/cfg?p=ChlVbm9mZmljaWFsIENhcmRib2FyZCBJbmMuEgtVQyAyLjAgUGx1cx2e7yc9JSUGgT0qEAAASEIAAEhCAABIQgAASEJYATUpXA89Ogh7FK4-zcwMP1AAYAM");
我通过扫描非官方纸板2.0 plus上的个人资料二维码获得了该url,
htp://goo。g l/NKZrps
,然后在curl之后键入,以获取重定向url:

curl g o o . g l /NKZrps
注意:stackoverflow不允许url缩短器,所以我不得不添加空格

当然,这不允许您为用户创建一个选项菜单,但只有在您知道用户将要使用的选项时,才可以预设一个选项