android - 在 Android 上的 Unity3D 中将网站渲染为纹理

标签 android unity3d browser google-vr daydream

快速摘要:
我正在开发一个 VR 应用程序,我们想要在我们的 VR 场景中的 3D 空间中渲染一个网站,最好是在纹理上。有很多方法可以在台式机 (PC/Mac) 上完成此操作,但在 Android 设备上则不然。
详情:
我们在 Windows 上有一个工作原型(prototype),它依赖于 Zen Fulcrum 的 Embedded Browser plugin ,但我们希望支持 Android 设备,例如 Google DayDream、Gear VR,以及最终将在明年发布的基于 Android 的独立耳机。
以下是我目前找到的所有 Unity 网页渲染解决方案的列表:

  • Embedded Browser通过 Zen Fulcrum - 支持 Windows 和 OSX
  • UniWebView通过 Yumigi - 他们 do not support将网页渲染为纹理。网页呈现在图形引擎呈现之上的平面层上。
  • In-App Web Browser作者 Piotr Zmudzinski - 似乎有同样的限制
  • Webkit for iOS作者 Chestnut Games - 仅适用于 iOS,他们的公司网站似乎不起作用。
  • HTML Engine for NGUI & Unity GUI作者:ZHing - 似乎不是真正的网络浏览器。似乎有人制作了一些将 HTML 转换为 UI 元素的脚本。
  • EasyWebViewTexture For Android作者 JaeYunLee - 我认识一些使用它的开发人员,但该项目神秘地被取消并停止了。
  • Awesomium for Unity (Beware: dead/suspicious link)作者:Khr​​ona Software - 他们关于 Unity 的 wiki 文章在他们的 wiki site 上都神秘地空白。并在他们的 GitHub . entire awesomium website也已关闭,Krhona Software 也是如此。公司网站。他们有一个 GitHub Repo因为他们的 Unity 集成,但他们的自述文件说它只支持 Windows 和 Mac。
  • uWebKit3作者:Mythos Labs - 不再可用。他们原来的网站已经不存在了。以前版本的 uWebKit 声称支持 Android。 Their announcement在 Unity 论坛上关于他们关闭的消息非常神秘和突然。我在 GitHub 上找到了一些东西声称是 uWebKit3,但自述文件声称仅支持 PC 和 Mac。
  • Unreal Engine 4's Web Browser Widget - 这是一个内置于 UE4 中的实验性小部件,在桌面上它可以毫无问题地在 3D 世界中渲染网页。不幸的是,尽管它声称支持 Android,但当您实际部署到设备时,您会发现浏览器只是在游戏引擎渲染之上呈现平面,而不是在 3D 世界中。

  • 我真的找不到任何关于为什么以前支持 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/

    相关文章:

    AndroidX:Appcompat I:艺术错误 android.view.View$OnUnhandledKeyEventListener

    c# - 统一: What is Unity Measurements?

    javascript - 在 PhoneGap 中调用 window.location.href 触发网络浏览器

    javascript - 有没有办法使用 Apache Cordova 专门了解根可用空间(Android 和 iOS)?

    android - 以编程方式禁用移动网络

    Android Material Design 抽屉导航菜单图标更改

    c# - 如何统一播放音频

    c# - 为什么当前文本没有更新?

    php - 302 图像在浏览器中重定向速度较慢

    scripting - 您在浏览器中使用的编程语言(即 Javascript)?