Unity支持20多种平台听起来好像很厉害,可是稍微接触了才发现其实有很多大坑。最近因为项目需要接触了WebGL,其中还要连接SQL数据库,原本以为只需要发布为WebGL即可,结果问题很多,问题如下:
1.发布项目时报错(看了一下错误是System.Windows.Form.dll报错,应该是WebGL不支持对Windows的系统属性的调用,如本地IP地址以及windows窗口)
2.打开发布出来的Html格式文件报错(发布出来的Html只是测试文件,只能用火狐浏览器打开,发布到服务器上才能用其他浏览器打开)
3.项目中的文字消失(Webgl不支持使用本地字体也就是Unity默认字体,字体必须包含在Unity项目中)
4.项目无法与数据库连接
前面都是小坑,看一下网上的解决方案就能够解决,倒是最后一个坑花了我很长时间。我查了一下之后才知道,WebGL是无法直接跟本地(服务器)的数据库连接的,需要在Unity中调用html中的JavaScript方法,通过JavaScript跟数据库(服务器)进行数据传输,处理完数据之后再回传给Unity,大致示意图如下
参考了很多帖子对我帮助很大,有兴趣可以看下:WebGL关于网页端与U3D互动的传值方法
知道了如何交互数据,但是问题还是没有解决,其中SendMessage无论如何都无法回传数值,奇怪,明明跟大家用的方法相同,为何会没有效果?无奈之下只能做小DEMO测试问题所在。

本文记录了在Unity5.6中发布WebGL项目时遇到的坑,包括不能直接与本地数据库连接,需要通过JavaScript中介。详细讲述了如何通过Unity调用JavaScript方法与WebGL应用进行数据交互,尤其是在Unity5.6版本中如何解决SendMessage无法回传数值的问题,最终找到并实现了有效的解决方法。


被折叠的 条评论
为什么被折叠?



