【问题标题】:Load different viewer profiles from script从脚本加载不同的查看器配置文件
【发布时间】:2015-07-30 10:27:40
【问题描述】:

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

我尝试扫描并设置一个按预期工作的自定义 VR 查看器配置文件。我试图通过序列化 Cardboard 类中的 CardboardProfile 对象来将此配置文件保存在 sdcard 上,如下所示:

Serialize (file,Cardboard.device.Profile);

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

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

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

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

谢谢

【问题讨论】:

    标签: android unity3d google-cardboard


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      根据this的回答,可以在Cardboard.cs中设置一个默认配置文件

      例如:

      public Uri DefaultDeviceProfile = new Uri("http://google.com/cardboard/cfg?p=ChlVbm9mZmljaWFsIENhcmRib2FyZCBJbmMuEgtVQyAyLjAgUGx1cx2e7yc9JSUGgT0qEAAASEIAAEhCAABIQgAASEJYATUpXA89Ogh7FK4-zcwMP1AAYAM");
      

      我通过扫描非官方 Cardboard 2.0 plus 上的个人资料 QR 码 h t t p : / / g o o . g l /NKZrps 获得了该网址,然后在 curl 后输入该网址以获取重定向网址:

      curl g o o . g l /NKZrps
      

      注意:stackoverflow 不允许使用 url 缩短器,所以我必须添加空格。

      这当然不会让您为用户创建选择菜单,但只有在您知道用户将使用的选项时才预设一个选项。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-09
          • 1970-01-01
          相关资源
          最近更新 更多