Embedded Browser用于实现Unity嵌入网页十分方便,完成与Web平台的互通。
最近开发一个项目时需要内嵌网页,编辑器中十分顺利,效果也入预期。不过在导出后发现,并不能打开网页。我想了如下可能性:
1.Embedded Browser目前有v1版本和v2版本,我先下载的是v1版本,不过导入插件包后部分变量定义缺失,可能是未应用造成的,比如Profiler,我当时也没找到是哪里的引起的,在网上也没找到相似的情况,所以暂时将这个问题暂时放到一边。于是我又下载了v2版本,不过v2版本支持的Unity版本为5.6及以上,而我的Unity版本仅为5.5,我将插件包导入后,反而没有出现任何问题,十分顺利,至少从编辑器上调试是这样的。
因此当遇到这个问题时我首先想到是不是因为插件与支持版本不符而引起的呢?
我先提升了Unity版本:
我的电脑上同时装有Unity2018,所以我就新建了一个项目将插件包导入随便打包了一个Demo,然而打包出的程序甚至还不如之前,连UI都没渲染出来。
接着我试着降低插件版本使其对应Unity版本符合:
在考虑这个可能性时需要至少读懂插件包源码,大致读了读插件包源码后,我发现项目在发布时会考虑32位系统和64位系统的问题,因此项目改为发布到64位平台,不过依旧出错了。我又回去阅读v1版本的源码,此时回头看v1的源码,对比v2我知道Profiler是因为缺少引用的缘故,加上引用using UnityEngineer.Profiling;便解决了问题,然后运行调试,编辑器上十分顺利,然后打包导出,也十分顺利。那看来是v2版本插件的问题了。v1Demo打包的程序右下角出现了Development Bulid,从未见过如此标志,在网上查找得知这是因为在Build时勾上了Development Bulid选项,不过正是因为这个提示了我,可以在发布的项目实现实时报错以发现问题。
2.可能运行时,部分代码部分出现了错误。
正是因为在考虑上种可能性时,发现了Development Bulid选项的作用,因此我回到了v2Demo,在打包时将Development Bulid勾上,以检测是否是程序运行出现了错误。事实证明,这次我猜对了,报错程序运行缺少了依赖的dll文件。怎么解决呢,我先是仅仅将报错缺失的那个文件找到并复制了过去,但依旧无法运行,观察v1项目与其打包的程序可以发现所有的dll复制到了打包的程序中,所以我将v2项目Plugins下所有的dll文件都复制到了v2打包的程序,至此时,程序顺利运行。

此次问题的解决也让我收获不少,最为关键的让我知道善用Development Bulid能实时发现打包出的程序运行出现的错误,这在解决如今日遇到的这种在编辑器阶段并无问题打包程序却不能运行的情况能起到事半功倍的效果。
记Unity3D Embedded Browser插件使用过程出现的问题
最新推荐文章于 2025-09-12 16:04:36 发布
本文记录了在使用Unity3D的Embedded Browser插件时遇到的问题及解决过程。在编辑器中运行正常,但在打包后无法打开网页。通过尝试不同版本的插件,发现版本不匹配和依赖dll缺失是问题所在。通过升级Unity版本、理解和修改插件源码,以及确保所有依赖dll被包含在打包项目中,最终成功解决问题。这个经历强调了Development Build在调试打包程序时的重要性。
9838





