分类
Unity

unity打包webGL遇到的问题

webGL

做了一个unity的小demo,demo是用mirror插件做的联机小游戏,然后我想着打包成webGL更方便一些,结果打包遇到了太多的问题。。。

一.报错Exception: Unity.IL2CPP.Building.BuilderFailedException,下面具体信息里还有你本机用户名是乱码的报错

那是因为编译.IL2CPP的时候,你本机用户的用户名是中文,编译环境识别不了,解决方法就是把用户变量的tmp和temp目标路径改了不要有中文,因为编译的临时文件都在temp文件夹。打包完最好换回去。原来的是%USERPROFILE%\AppData\Local\Temp

二.打开出现这样的提示,具体就是本地文件的webgl没法打开

解决方法1:配置自己的浏览器强制打开webgl,具体可以上网查查

解决方法2:放到服务器通过ip或者域名访问就可以了

在这里插入图片描述

三.

WebGL 网络无法直接访问套接字
由于存在安全隐患,JavaScript 代码无法直接访问 IP 套接字来实现网络连接。因此,.NET 网络类(即 System.Net 命名空间中的所有内容,具体而言就是 System.Net.Sockets)在 WebGL 中不起作用。Unity 旧有的 UnityEngine.Network* 类也是如此,以 WebGL 为构建目标时无法使用这些类。

如果需要在 WebGL 中使用网络,当前可选择的做法是使用 Unity 中的 WWW 或 UnityWebRequest 类或使用支持 WebGL 的新型 Unity 网络功能,或者使用 JavaScript 中的 WebSockets 或 WebRTC 来实现您自己的网络。

简而言之,就是接入域名。用域名访问

四.webGL加载到最后,加载不动了

1.压缩形式选Disabled试试

2.压缩方式选Gzip,然后在nginx配置文件加入如下配置

五.暂时还未解决

总结一下:webGL既然放在服务器上,太大的话真的不太合适,webGL最好还是小项目或者做做游戏介绍,然后做联机的webgl这么麻烦,为什么要为难自己那

WebGL 网络 – Unity 手册

最后推荐两个mirror的项目。

Unity 使用Mirror框架制作多人游戏 | AlertNote (gitee.io)

UNITY|Mirror(简单的多人游戏)教程 [1/6]_哔哩哔哩_bilibili