UniWebView2:适用于Andriod、iOS和Mac os,在移动端效果最好。支持WP8,不支持windows桌面系统,包括编辑器状态。 Unity4.x版本是 UniWebView
Unity AssetStore 上的插件: https://www.assetstore.unity3d.com/en/#!/content/32461
在Unity中主要用于活动,就像《阴阳师》 手游
开发有些不方便,因为不支持window下的 Editor的调试!, 只能在Mac下!
使用的主要思路
插件的 官网 ; http://uniwebview.onevcat.com/
下载插件然后安装导入 Unity
使用 Prefab 和设置 URL .
从 UniWebView/Prefab 文件夹下 拖拽 UniWebViewObject 预制体,在Inspector 上设置 URL(在Windows上也设置不了), Mac 上Play就可以看到效果, 但是在Window上要打包成移动包才行。
UniWebView的工作方式
在Mac 系统下可以设置 UniWebView组件上的: Insets 能控制 web 视图的大小。Start函数中加载(Load On Start )和加载完成时自动显示(Auto Show WhenLoad Complete )。
除了显示 web 页面的基本用法,UniWebView 有一些其他重要的功能、 与Unity场景通信, 侦听 web 页event事件和计算一些 JavaScript。
通过脚本设置 UniWebView 加载Web 内容并显示:
假设, 你在 UniWebView.cs 脚本的所在对象上有一个脚本, 其中定义了字段:
你可以通过这样的方式 得到 引用:
// 监听事件
然后 设置 Web 页面的大小 和你 想要加载页面的Url :
设置完成后,收到调用加载 页面 :
页面加载成功或者失败的 完成回调函数大致如下:
如果 不想监听(其实是不处理失败检测)和自己处理这个 OnLoadComplete 事件,可以 设置属性: 你好像也可以 先调用 Show() 函数,然后在调用 Load(), 函数。
Web页面和Unity游戏逻辑的通信
一、UniWebView发送消息给 Unity
这个建议使用 url 方案。UniWebView 将监听 以 uniwebview:// 开始 的 url
如果玩家在 Web 页面点击了 Url 链接, UniWebView 将会解析为一个 UniWebViewMessage 对象 ,然后引发 OnReceivedMessage 事件。 一个 UniWebViewMessage 对象包含 一个路径字符串(其中有url 和args 参数字典)。
例如当点击了链接 : uniwebview://move?direction=up&distance=1
将被解析为:
你在 监听了 OnReceivedMessage 事件 的回调中, 会得到 UniWebViewMessage对象,然后实现自己的逻辑: (自己注: 在游戏中我们通常点击了活动的每个标签或者 Button,可能是页面切换,可能是Button的网络请求, 都可以以这种方式来弄! 如果是C#写逻辑,那不就没有了一些热更新的优势了???)