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无论如何都无法回传数