Unity WebView 插件⭐️(四)插件不同平台版本的区别和注意事项

举报
呆呆敲代码的小Y 发表于 2021/09/27 09:52:18 2021/09/27
【摘要】 📢前言该文章是WebView 插件系列文章,传送门:浏览器插件3D WebView专栏上一篇文章对3D WebView 插件的Demo示例场景做了一个简单的说明介绍那本篇文章就来介绍下 该插件不同平台版本 之间的区别和注意事项 插件不同平台版本的区别和注意事项在前的文章中也介绍过该插件有对应不同平台的不同版本分别是Windows /Mac、Android、IOS和UWP/Hololens...

📢前言

该文章是WebView 插件系列文章,传送门:浏览器插件3D WebView专栏

上一篇文章对3D WebView 插件的Demo示例场景做了一个简单的说明介绍

那本篇文章就来介绍下 该插件不同平台版本 之间的区别和注意事项

请添加图片描述


插件不同平台版本的区别和注意事项

在前的文章中也介绍过该插件有对应不同平台的不同版本

分别是Windows /Mac、Android、IOS和UWP/Hololens等几个版本

在这里说一下分为这几个版本都有什么特点以及注意事项

特点

首先,这个插件的不同版本都是可以在电脑上导入Unity工程的!
并不是说我使用的Android版本,就需要用Android系统来开发~ 那显然是不可能的
我们正常在使用Unity开发的时候都是Windows电脑和Mac电脑
所有版本的插件都是可以正常导入电脑的Unity中去使用的!这一点一定要清晰知道!

有的小伙伴可能会问,那分为这么多版本是干什么的呢?
那是因为不同的版本只能在不同系统的真机上使用!

什么意思呢,就是我导入了一个Windows/Mac版本的插件,在自己的电脑端可以正常使用
但是当你想打包成Apk去装进手机用,那肯定是不行的,因为你买的是电脑端版本的插件

其次,假如我导入的是Android版本的插件,那我在电脑端直接没法显示,他会提示平台版本不正确
虽然可以正常写代码,使用插件的脚本,但是由于导入的是Android版本,所以电脑端是无法看得一个正常的网页视图的
其他所有版本都是一样的,在电脑端都看不到显示网页视图的效果,直接运行在电脑端都是下面这个效果

在这里插入图片描述

不过打包到对应插件版本的平台都是可以正常显示的,只是用电脑开发的时候没法实时的看效果很头疼!

所以这里要特别注意,假如我最终开发的项目是用在Android手机端的,那我就需要导入· Android版本的插件· 和 ·Windows/Mac版本· 的插件

一定要导入这两个,我们才能正常在电脑端开发的时候,实时的看到网页视图显示的效果,然后打包成APK正常装到手机上使用!
如果不同版本的插件都有,只要是版本号一致,那就可以都导入进去,不会发生冲突,这样就没什么顾虑了~


注意事项

安卓设置:

  • 将“图形 API”设置为“OpenGLES3”或“OpenGLES2”
  • 将“最低 API 级别”设置为“Android 5.0 Lollipop”(或更高)
  • 验证“构建系统”是否设置为“Gradle”(默认)

IOS设置:

  • iOS 无需更改 Unity 播放器设置
  • 视窗设置:
  • 将“Windows 图形 API”设置为“Direct3D11”

macOS 设置

  • 将“Mac 图形 API”设置为“金属”
  • 验证是否启用了“Metal Editor Support”
  • 通用 Windows 平台 (UWP) 设置:
  • 将“构建类型”设置为“XAML 项目”(这是支持 webview 所必需的)
  • 禁用“自动图形 API”
  • 将“图形 API”设置为“Direct3D11”
  • 如果针对 Hololens 2,请禁用“图形作业”
  • 在“发布设置”中,启用以下功能:“InternetClient”、“SpatialPerception”
    (可选)如果使用混合现实工具包 (MRTK),请将以下符号添加到“脚本定义符号”以启用 MRTK 指针兼容性:VUPLEX_MRTK

打包不同版本的时候,要将上面都设置好了才行,要不然可能会出现打包出错的问题


Android 3D WebView:两个版本的比较

这个插件的Android平台有两个版本,一个是普通的Android 3D WebView,另一个是3D WebView for Android with Gecko Engine

这两个版本区别还是挺大的,要不然也会额外的分出来

简单一句话如果是打包给普通的Android手机用,那就使用普通的Android平台的插件;如果是要在VR设备上用,那就使用3D WebView for Android with Gecko Engine 就好了!

官方解释:
这两个版本使用的是不同的浏览器引擎

  • 3D WebView for Android使用 Android 的内置系统 WebView作为其浏览器引擎。
  • 带有 Gecko 引擎的 Android 3D WebView嵌入了 Mozilla 的Gecko 浏览器引擎,它提供了更好的稳定性,并为 VR 耳机上的鼠标交互提供了更好的支持。

原生3D WebView for Android包推荐用于普通的 Android 开发,因为它的原生库体积更小,并且支持Native 2D Mode。
但是,如果您正在为 Oculus Quest 之类的 VR 耳机开发,那么建议使用带有 Gecko Engine 的 Android 3D WebView。
如果您愿意,您可以同时使用这两个版本以获得两全其美的效果。

然后是分别介绍下这两个版本的优缺点

3D WebView for Android
3D WebView for Android使用 Android 的内置系统 WebView作为其浏览器引擎。

优点

  • 具有较小的存储空间(< 2 MB),因为浏览器引擎内置于操作系统而不是库中。
  • 支持原生 2D 模式。
  • 支持原生屏幕键盘。
  • 支持透明的 webviews。
  • 在带有 Google Play 商店的设备上,系统 WebView会自动与最新版本的 Chromium 保持同步。

缺点

  • 由于 System WebView 软件包是操作系统的一部分,因此它可能因设备而异:
  • 在 Oculus Quest 上,不支持悬停交互,有时点击交互也不起作用。这是因为 Quest 的 System WebView 存在一个错误,该错误会阻止 3D WebView 用于分派鼠标事件的正常方法正常工作。因此,3D WebView 必须回退到使用 JavaScript 分派鼠标事件。
  • 虽然系统 WebView 自动更新到最新版本的 Chromium 通常是一件好事,但如果最新版本的 Chromium 引入错误,则可能会出现问题。例如,Chromium v​​91 引入了一个错误,它暂时破坏了 System WebView 的 SetInitialScale() API。此错误已在 Chromium v​​92 中修复,但它暂时影响了 3D WebView 的功能。

3D WebView for Android with Gecko Engine
带有 Gecko 引擎的 Android 3D WebView使用 Mozilla 的GeckoView库作为其浏览器引擎。

优点

  • 鼠标事件和悬停效果很好,即使在 Oculus Quest 上也是如此。
  • 由于 Gecko 浏览器引擎是作为 3D WebView 库的一部分嵌入的:
  • 由于 Android 设备的变化,它不太容易出现问题。
  • 由于浏览器引擎会自动更新,因此不容易出现问题。

缺点

  • 具有更大的存储空间,因为浏览器引擎嵌入在库中而不是操作系统中。GeckoView 库使应用程序 APK 的大小增加了约 50 MB,Unity 项目的大小增加了约 164 MB。
  • 不支持Native 2D Mode。
  • 不支持本机屏幕键盘。
  • 不支持透明 webviews。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。