Unity发布webgl的一些问题
1 技术概览
为了在WebGL中运行,所有代码需要是JavaScript。我们使用 emscripten 编译器工具链来交叉编译Unity运行时代码(用C和C++编写)到asm.js的JavaScript代码。asm.js是一个非常理想的JavaScript子集,允许JavaScript引擎 预编译asm.js代码为极具性能的原生代码。
为了转换.NET 游戏代码(C#和UnityScript脚本)至JavaScript,我们使用了一个称为IL2CPP的技术。IL2CPP获取.NET字节代码并将它转换为对应的C++源文件,然后通过使用emscripten,这些源文件被编译,最终将用户的脚本转换为JavaScript。
2 Unity WebGL 取消浏览器警告
using System;
using System.IO;
using System.Text.RegularExpressions;
using UnityEditor;
using UnityEditor.Callbacks; public class PostBuildActions { [PostProcessBuild] public static void OnPostProcessBuild(BuildTarget target, string targetPath) { var path = Path.Combine(targetPath, "Build/UnityLoader.js"); var text = File.ReadAllText(path); text = Regex.Replace(text, @"compatibilityCheck:functione,t,re,t,r\{.+,Blobs:\{\},loadCode", "compatibilityCheck:function(e,t,r){t()},Blobs:{},loadCode"); File.WriteAllText(path, text); }
}
Unity打包完毕后,修改UnityLoader.js文件,进行文本替换。
相关警告提示:
Your browser does not support WebGL |
Please note that Unity WebGL is not currently supported on mobiles. Press OK if you wish to continue anyway. |
Please note that your browser is not currently supported for this Unity WebGL content. Press OK if you wish to continue anyway. |
3 部署IIS教程
在Unity3D中发布WebGL,当我们需要将其加入我们自己的网站时,需要将WebGL的内容放入服务代码,我们需要创建IIS服务器
部署IIS教程:点击打开链接
4 修复Uncaught SyntaxError: Unexpected token < in JSON at position 0
发布成webgl后,放在iis根目录中,然后再在根目录中放置Web.config文件
其中Web.config的内容如下:
<configuration><system.webServer><staticContent><remove fileExtension=".mem" /><remove fileExtension=".data" /><remove fileExtension=".unity3d" /><remove fileExtension=".jsbr" /><remove fileExtension=".membr" /><remove fileExtension=".databr" /><remove fileExtension=".unity3dbr" /><remove fileExtension=".jsgz" /><remove fileExtension=".memgz" /><remove fileExtension=".datagz" /><remove fileExtension=".unity3dgz" /><remove fileExtension=".json" /><remove fileExtension=".unityweb" /><mimeMap fileExtension=".mem" mimeType="application/octet-stream" /><mimeMap fileExtension=".data" mimeType="application/octet-stream" /><mimeMap fileExtension=".unity3d" mimeType="application/octet-stream" /><mimeMap fileExtension=".jsbr" mimeType="application/octet-stream" /><mimeMap fileExtension=".membr" mimeType="application/octet-stream" /><mimeMap fileExtension=".databr" mimeType="application/octet-stream" /><mimeMap fileExtension=".unity3dbr" mimeType="application/octet-stream" /><mimeMap fileExtension=".jsgz" mimeType="application/x-javascript; charset=UTF-8" /><mimeMap fileExtension=".memgz" mimeType="application/octet-stream" /><mimeMap fileExtension=".datagz" mimeType="application/octet-stream" /><mimeMap fileExtension=".unity3dgz" mimeType="application/octet-stream" /><mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" /><mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" /></staticContent></system.webServer>
</configuration>
Unity发布webgl的一些问题相关推荐
- unity发布webgl 触摸控制和鼠标控制冲突问题解决
unity发布webgl 触摸控制和鼠标控制冲突问题解决 参考文章: (1)unity发布webgl 触摸控制和鼠标控制冲突问题解决 (2)https://www.cnblogs.com/pz904/ ...
- Unity发布WebGL时如何修改默认的载入进度条sf?
Unity发布WebGL版本后,需要去除Unity的Logo,首先关闭Splash Image去除Made with Unity启动画面(在File->Build Settings->Pl ...
- Unity发布WebGL不显示中文字体问题
在Unity发布WebGL的时候中文不能够显示,主要在于字体的设置,Unity默认的字体是Arial字体 首先想到的是字体类型不对,接下来更换字体 解决方案: 1.在Asset下创建文件夹,Font ...
- Unity发布WebGL注意事项以及移动端打开webgl网页
Unity发布WebGL网页端 Unity发布webGL项目时存在很多的易错点,这些错误点没有统一的规律,因为是跨平台开发,开发过程中需要去解决未知的和已知的报错点,下面就我这两年开发WebGL遇到的 ...
- 分享一个unity发布webgl 的复制粘贴功能的插件,unity打包webgl的坑
unity发布webgl 难免需要复制粘贴功能,而自带的UGUI的InputField是不具备的 所以一直在寻找可用的方案,但是unity webgl相关的资料比较少,找下来记录一下,希望可以帮助大家 ...
- unity发布webgl本地搭建服务器
当我们使用Unity发布WebGL项目的时候直接运行是不允许的,如下图提示: 如果我们没有线上服务器,怎么办?我们可以使用Windows的IIS服务,操作系统:Windows 10企业版G. Unit ...
- Unity发布WebGl注意事项
unity 版本是5.5,不过看了2017的文档好像也是差不多,绝大部分都是根据官方文档,希望有帮助,如果有错误或者你知道更多这方面的只是,请告知下,大恩言谢. 1:对webgl发布的工程文件说明 在 ...
- Unity发布WebGL运行问题
写在前面 Unity发布到Web平台的项目,在低版本的浏览器中,直接右键本地打开index.html文件,便可打开项目运行,但是升级浏览器后,发现在双击打开项目时,显示网页不支持运行WebGL等错误. ...
- Unity 发布WebGL在本地浏览器运行
有些项目要求发布WebGL版本,官方目前兼容性最好的浏览器是火狐和谷歌浏览器,发布成功之后初次使用火狐浏览器在本地打开,打开的时候出现"It seems your browser does ...
最新文章
- jvm性能调优实战 -60 线上系统的JVM参数优化、GC问题定位排查、OOM分析解决
- Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'
- 软考解析:2015年上半年下午试卷
- 企业级控件库之大数据量分页控件 (非原创)
- SAP Spartacus cx-page-layout 属性运行时的赋值原理, set 是如何被框架调用的?
- 应用内安装部分手机出现解析错误
- mysql count里面能加条件吗_select count(1) 和 count(*),哪个性能更好?
- [ 转载 ] Java基础12--基础学习总结——数组
- mysql带唯一主建任然发生gap,mysql – 使用主键分块从大表中删除时仍然看到锁等待超时...
- 关于在线机器学习ftrl_proximal_lr的二三件事
- python_体脂率的计算
- vue项目退出登录清除 store 数据
- 安徽省省二级c语言准考证号查询系统,网办进度考试查询系统
- 计算机运行黑屏显示器正常,详细教您电脑主机运行正常显示器黑屏怎么办
- ureport2报错/by zero的解决方法
- c语言小蜜蜂游戏编程,GMS2从零做游戏:小蜜蜂(一)
- 服务器的公共显示屏,网络公共广播系统主机服务器-星时华熠官网 - 航天信广...
- 甘特图是什么?如何快速搭建?
- 当当网系统分级与海量信息动态发布实践
- 龙珠斗士z服务器位置,龙珠斗士Z配置要求介绍
热门文章
- 华为服务器检索信息,裸金属服务器使用标签检索资源
- FastAPI框架,数据库迁移生成及增删改查
- html打印预览 分页,有分页功能的WEB打印_js
- 【电针驱动迷走-肾上腺轴的神经解剖学基础】A neuroanatomical basis for electroacupuncture to drive the vagal– adrenal axis
- Java定时任务的解决方案(Quartz等)
- Unicode HOWTO 中文翻译
- 红米note4x标准版和高配版电池性能对比评测
- 1.4 CNN的崛起
- 男人,女人一生要过五个关卡【曾仕强】
- 推荐系统之基于内容推荐