目录

  • Unity中打包时注意事项
    • 切换平台为WebGL平台
    • 设置Player Setting
      • 分辨率预设
      • 其它设置
      • 发布设置
      • 确保项目路径没有中文
    • 选择Assets同级目录打包
  • 打包后将项目部署到IIS上发布
    • 安装IIS并添加网站
    • 为服务器添加 MIME Type 映射和跨域访问权限
      • 添加MIME Type映射
      • 添加跨域访问权限
  • 尝试访问html网站
    • 访问遇到的问题
      • Failed to load resource: the server responded with a status of 404 (Not Found) favicon.ico
      • Range Out Of Bounds
      • 不显示中文字体
      • 浏览器不支持WebGL
      • 浏览器提示不支持WebGL2.0

Unity中打包时注意事项

切换平台为WebGL平台


保证在平台切换后项目能在Unity中运行。

设置Player Setting

分辨率预设

其它设置



取消勾选Strip Engine Code,这个选项标识官⽅⽂档是这样描述它的"如果被选中,unity会默认剥离在项⽬中不会使⽤的组件",也就是说,假如你的项⽬中没有⾳频功能,unity会在封装的时候去掉这部分代码以减少⼤⼩。最好取消勾选。

发布设置


将压缩禁用,这样打包出来的文件数据后缀为.data。

ps:将压缩禁用后,会导致打包出的包比较大;可选择使用Brotli或Gzip的方式进行压缩,需要注意,如果使用这两种压缩方式,则需要勾选Decompression Fallback选项,这样才能让页面自动解压缩,否则会出现IIS不能识别br或gz文件的情况。

另外,使用Brotli压缩后打包出来的文件大小会优于使用Gzip打包出来的文件大小,但是代价是更长的打包等待时间。

确保项目路径没有中文

硬盘盘符最好也是英文,接着就能点击Build打包了。

选择Assets同级目录打包

点击Build打包后,会提示选择打包后的包存放路径。
在项目的Assets同级目录下新建一个Pak文件夹,用于存放打包好后的包。

打包后将项目部署到IIS上发布

安装IIS并添加网站

在本机上安装IIS(Internet Information Services),打开后右键本机添加网站,并添加刚刚打包出的包存放位置。

为服务器添加 MIME Type 映射和跨域访问权限

添加MIME Type映射

由于打包出来有后缀为.data的文件,服务器不能解析其为什么类型的。因此,需要在IIS中添加MIME类型。

双击后右上角找添加。

为.data文件添加MIME类型为multipart/form-data。

这时,IIS会自动编写一个web.config文件。

<?xml version="1.0" encoding="UTF-8"?>
<configuration><system.webServer><staticContent><mimeMap fileExtension=".data" mimeType="multipart/form-data" /></staticContent></system.webServer>
</configuration>

ps:上述是不压缩的MIME类型设置,若是使用Brotli或Gzip压缩方式打包,则需要为.unityweb以及.unity3d文件添加MIME类型分别为application/binary以及application/octet-stream。
此时的web.config文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration><system.webServer><staticContent><mimeMap fileExtension=".unity3d" mimeType="application/octet-stream" /><mimeMap fileExtension=".unityweb" mimeType="application/binary" /></staticContent></system.webServer>
</configuration>

添加跨域访问权限

什么是跨域?
只有当协议、端口、和域名都相同的页面,则两个页面具有相同的源。只要网站的协议名protocol、 主机host、 端口号port这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用,会受到同源策略的限制。
解决办法:
添加跨域访问权限。
找到HTTP响应标头后双击。

同样的,右上角点击添加,加入如下内容。

//名称                           值
Access-Control-Allow-Origin      *
Access-Control-Allow-Methods     GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers     Content-Type


同样是IIS自动在web.config文件中添加相应设置。

<?xml version="1.0" encoding="UTF-8"?>
<configuration><system.webServer><staticContent><mimeMap fileExtension=".data" mimeType="multipart/form-data" /></staticContent><httpProtocol><customHeaders><add name="Access-Control-Allow-Origin" value="*" /><add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /><add name="Access-Control-Allow-Headers" value="Content-Type" /></customHeaders></httpProtocol></system.webServer>
</configuration>

尝试访问html网站

选中刚才添加的Pak文件夹,右侧找浏览 *:80(http)选项,即可访问html网站了。

访问遇到的问题

在访问的过程中不是那么的顺利,遇到了一些问题,按F12键检查Console的输出以查看是什么问题导致的加载问题。

Failed to load resource: the server responded with a status of 404 (Not Found) favicon.ico

浏览器找不到favicon.ico文件,需要手动在根目录下新建一个。

Range Out Of Bounds

Unity中资源太大,导致内存溢出。
由于2020版本的Unity在Player Settings中找不到设置Memory Size的地方。
因此在Assets文件夹下新建一Editor文件夹,新建一SetMemorySize脚本用于在菜单栏中手动设置MemorySize和获取当前MemorySize:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SetMemorySize : UnityEditor.Editor
{[UnityEditor.MenuItem("WebGLPak/Set Size")]public static void SetSize(){UnityEditor.PlayerSettings.WebGL.memorySize = 2 * 1024 * 1024 * 1000;}[UnityEditor.MenuItem("WebGLPak/Get Size")]public static void GetSize(){Debug.LogError(UnityEditor.PlayerSettings.WebGL.memorySize);}
}

不显示中文字体


由于unity默认使用的是Arial,导致打包成webgl时中文不显示。
需要在电脑C盘下,路径为C:\Windows\Fonts导入一个格式为.ttf的中文字体,将Arial字体替换成导入的中文字体即可。

浏览器不支持WebGL

需在浏览器快捷方式的属性中的目标处后加空格并添加启动项:

-enable-webgl --ignore-gpu-blacklist --allow-file-access-from-files

浏览器提示不支持WebGL2.0

首先,可以访问该网站以确认该浏览器是否支持WebGL2.0:

若是提示支持WebGL 2,是由于某个设置没有设置的问题,可以尝试使用以下方式设置:
在浏览器的地址栏输入:

about:flags

浏览器会自动跳转到实验性开发功能。

接着,在上方搜索栏输入ANGLE后进行检索,找到如下选项后,将后面的Default选项修改为D3D11on12:

【Unity】打包WebGL项目遇到的问题及解决记录相关推荐

  1. unity打包webgl报错及处理 IL2cpp/build/unityLinker.exe not run properly;IL2cpp.exe not run properly

    unity打包webgl中出现的错误及解决方法 第一个 IL2cpp.exe not run properly 第二个 IL2cpp/build/unityLinker.exe not run pro ...

  2. 分享一个unity发布webgl 的复制粘贴功能的插件,unity打包webgl的坑

    unity发布webgl 难免需要复制粘贴功能,而自带的UGUI的InputField是不具备的 所以一直在寻找可用的方案,但是unity webgl相关的资料比较少,找下来记录一下,希望可以帮助大家 ...

  3. Unity打包Android项目报错

    一.背景 Unity项目是具备以下能力的 1.可以直接运行在Android手机上的 2.可以build出一个apk文件再安装到手机上运行 3.可以打包成一个Android项目,使用Android St ...

  4. unity打包webgl PC端和移动端使用

    测试版本unity5.6.3版本 PC端浏览器    win10自带的浏览器 (谷歌没能打开-----肯定是可以的,暂时没去找办法) 移动端安卓(无ios手机)     主机局域网内做iis再使用移动 ...

  5. Unity打包webgl搭建本地服务器卡loading的解决方案

    首先确保你的工程是正常的,比如build and run可以正常打开 当然不嫌麻烦可以每次这样,相信有很多人会选择搭建本地服务器,使用IIS,我本人安装好之后,使用localhost:端口号打开本地w ...

  6. Unity打包webgl文本框不显示汉字

    现象如图: 解决办法是:对text进行换字体,将Arial默认字体,换为FZLT字体(方正兰亭.ttf).

  7. Win端Unity 打包XCode项目导入虚拟机Mac系统使用XCode编译出现Unity-iPhone.xcodeproj cannot be opened

    出现以下错误: Unity-iPhone.xcodeproj cannot be opened because the project file cannot be parsed. 外面有很多说删除& ...

  8. Unity发布WebGL注意事项以及移动端打开webgl网页

    Unity发布WebGL网页端 Unity发布webGL项目时存在很多的易错点,这些错误点没有统一的规律,因为是跨平台开发,开发过程中需要去解决未知的和已知的报错点,下面就我这两年开发WebGL遇到的 ...

  9. unity发布webgl本地搭建服务器

    当我们使用Unity发布WebGL项目的时候直接运行是不允许的,如下图提示: 如果我们没有线上服务器,怎么办?我们可以使用Windows的IIS服务,操作系统:Windows 10企业版G. Unit ...

  10. 关于Unity发布的WebGL项目出现问题的解决方法和本地网站部署

    一.关于将Unity的项目打包为WebGL出现Exception: E:\Unity\Editor\Data\il2cpp/build/il2cpp.exe did not run properly! ...

最新文章

  1. EncodeUtil
  2. Python中的模块和包:模块的(动态)导入、__future__模块使用
  3. LeetCode20——Valid Parentheses(括号匹配问题,使用栈的知识)
  4. Python——正则表达式特殊符号及用法
  5. [转]Unity3D新手引导开发手记
  6. 前端存储 (2) - sessionStorage ,localStorage
  7. Shell学习笔记一
  8. pandas + sqlalchemy mysql
  9. WebRTC SDP 详解和剖析
  10. ddk开发 c语言,ddk_helloWDM_原代码是网上高手的杰作
  11. 代理服务器有问题怎么办?
  12. Java学习笔记Day2:流程控制
  13. 1-3年Android开发工程师面试经验分享,面试建议
  14. 4G手机网络免费开通高清语音VoLTE
  15. 解决github官网进不去
  16. 崩坏三8月20号服务器维修,崩坏38月20日版本更新维护通知
  17. 用python画宇宙_快来用Python和Blender超简单绘制你的宇宙飞船!
  18. Google Play开发者账号被封,损失惨重!又是账号关联!!
  19. android glide支持的格式,Glide-Android最常用的图片加载框架
  20. 中国银行人工智能行业现状与发展趋势及前景预测报告

热门文章

  1. 还不知道简历如何写?就该这样写!
  2. java barchart类,JavaFX BarChart条形图颜色
  3. 终端安全防护技术研究(一)
  4. curve BLS12-377/381 BN256 SageMath脚本
  5. 计算机图形点阵表示实例,[计算机图形学的应用实例计算机图形作业).doc
  6. 学生信息管理系统(数据库)
  7. 集群通信组件tribes之使用方法
  8. 微信小程序开发-view视图组件
  9. 【英语音节输入软件】模仿汉语拼音
  10. iOS中常用的颜色色值