Unity WebView 插件⭐️(四)插件不同平台版本的区别和注意事项
📢前言
该文章是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 v91 引入了一个错误,它暂时破坏了 System WebView 的 SetInitialScale() API。此错误已在 Chromium v92 中修复,但它暂时影响了 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。
- 点赞
- 收藏
- 关注作者
评论(0)