快速摘要:
我正在开发一个 VR 应用程序,我们想要在我们的 VR 场景中的 3D 空间中渲染一个网站,最好是在纹理上。有很多方法可以在台式机 (PC/Mac) 上完成此操作,但在 Android 设备上则不然。
详情:
我们在 Windows 上有一个工作原型(prototype),它依赖于 Zen Fulcrum 的 Embedded Browser plugin ,但我们希望支持 Android 设备,例如 Google DayDream、Gear VR,以及最终将在明年发布的基于 Android 的独立耳机。
以下是我目前找到的所有 Unity 网页渲染解决方案的列表:
我真的找不到任何关于为什么以前支持 Android 时不再支持它的信息。也许 Android 堆栈上发生了一些变化?如果我自己尝试弄乱 Chromium 并让它在 Android 上运行,我会遇到任何死胡同吗?
Android SDK 提供原生WebView组件,它被呈现为我们无法真正 Hook 的独立屏幕元素。 Google 刚刚发布了 Chrome VR browser in Daydream 的预览版,但它的开发还很早,我真的不认为他们计划为 VR 开发人员提供一个可以在短期内使用的解决方案。 Oculus 有实验性 Carmel Browser但它似乎更专注于渲染 WebVR,而不是为 VR 开发人员提供工具。我已经与 Oculus Web Browser 的人取得了联系团队(在 PAX 遇到他,哈哈),他们计划发布一项功能,让开发人员可以更轻松地启动在 Gear VR 的内置 Oculus 网络浏览器中打开的网页。但这是一个应用程序切换场景,它不允许您在自己的 3D 场景中渲染网页。
我正在考虑探索的一种可能性:如果我们有一个服务器来为用户呈现网页并将该内容作为纹理数据传输回他们的设备会怎样?这有点像 OnLive 对视频游戏所做的,除了有时你可以容忍更多的延迟。它可以使用 Selenium(或其他一些 webdev 视觉回归测试工具)来处理渲染......呃,这听起来很痛苦,但不确定我们公司是否有能力在这样的事情上花费几个月的时间。 -_-
有什么建议?谢谢!
最佳答案
我四处寻找支持视频的 webview 插件和 Unity 3D webview plugin for Android是我能找到的唯一一个。我已经使用它一段时间了,并会推荐它。下面是一个使用它的例子:
using UnityEngine;
using Vuplex.WebView;
class SceneController : MonoBehaviour {
// I set this in the editor to reference a webview in the scene
public WebViewPrefab webPrefab;
void Start() {
webPrefab.Init(1.5f, 1.0f);
webPrefab.Initialized += (sender, args) => {
// load the video so the user can interact with it
webPrefab.WebView.LoadUrl("https://www.youtube.com/watch?v=dQw4w9WgXcQ");
};
}
}
关于android - 在 Android 上的 Unity3D 中将网站渲染为纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46479953/