您现在的位置是:首页 > 技术教程 正文

第六十章 Unity 发布Web平台

admin 阅读: 2024-03-31
后台-插件-广告管理-内容页头部广告(手机)

WebGL 是一种用于在 Web 浏览器中渲染图形的 API,基于 OpenGL ES 图形库的功能。WebGL 1.0 大致与 OpenGL ES 2.0 功能相匹配,而 WebGL 2.0 大致与 OpenGL ES 3.0 功能相匹配。WebGL 构建选项允许 Unity 将内容发布为 JavaScript 程序,而这些程序可使用 HTML5/JavaScript、WebAssembly、WebGL 渲染 API 和其他 Web 标准在 Web 浏览器中运行 Unity 内容。桌面平台的大多数主要浏览器的当前版本都支持 Unity WebGL 内容,但不同浏览器提供的支持程度存在差异。请注意,Unity WebGL 不支持移动设备。另外,并非所有 Unity 功能都可用于 WebGL 构建,主要是由于平台的限制。例如,由于 JavaScript 中缺少线程支持,因此不支持线程。再例如,WebGL 构建使用基于 Web 音频 API 的自定义音频后端。此情况下仅支持基本音频功能。具体内容可以参考官方给出的清单列表。

接下来,我们就来演示如何打包发布Web应用程序。首先,我们创建一个“WebDemo”的工程。我们同样创建一个平面Plane和一个立方体Cube,如下所示

接下来,我们再创建一个CubeScript.cs脚本文件,附加到立方体Cube上面。

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class CubeScript : MonoBehaviour
  5. {
  6. // 移动速度
  7. private float moveSpeed = 10.0f;
  8. // 旋转速度
  9. private float rotationSpeed = 100.0f;
  10. // Update is called once per frame
  11. void Update()
  12. {
  13. // 前后左右方向
  14. float v = Input.GetAxis("Vertical");
  15. float h = Input.GetAxis("Horizontal");
  16. Vector3 direction = new Vector3(h, 0, v);
  17. transform.Translate(direction * moveSpeed * Time.deltaTime, Space.Self);
  18. // 向左旋转,替换GetKey方法
  19. if (Input.GetKey(KeyCode.Q))
  20. {
  21. transform.Rotate(Vector3.down * rotationSpeed * Time.deltaTime, Space.Self);
  22. }
  23. // 向右旋转,替换GetKey方法
  24. if (Input.GetKey(KeyCode.E))
  25. {
  26. transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime, Space.Self);
  27. }
  28. }
  29. }

接下来,我们点击菜单栏:File -> Build Settings在弹出的“Build Settings”窗口左侧选中“WebGL”,然后点击右下角的“Switch Platform”(默认是PC平台)。

 

点击“Switch Platform”切换平台

接下来,我们点击“Player Settings”按钮

接下来,我们设置公司名称,项目名称,以及启动图标(图标文件提前放置Assets目录下)。

然后我们选择“WebGL”选项卡,展开下面的“Resolution and Presentation”

这里我们可以设置分辨率和默认,我们就使用默认值吧。

接下来,我们展开“Publishing Settings”

我们勾选“Decompression Fallback”选项,也就是启用解压缩回退。此项决定浏览器中运行时 Unity 如何处理下载的文件。具体我们不再解释。

然后我们关闭当前窗口,回到“Build Settings”窗口中,点击右下角的“Build”

我们将打包文件保存到“E:\workspace\www”目录下

开始打包中,经过一段时间后,我们去“E:\workspace\www”目录下查看

上面打包完成的文件如何运行呢?我们还需要借助Web Server 上面才可以访问。这里我们推荐大家使用Nginx这个Web Server。这里,我们使用的是nginx-1.22.1.zip 这版本。这个版本是Windows下的版本,本章节只讨论Windows系统下如何运行WebGL工程。Nginx的下载地址为:https://nginx.org/download/nginx-1.22.1.zip  然后将其解压到一个目录下。

我们直接在上面的地址栏中输入“CMD”后回车

然后,我们就会进入到Dos命令行下,输入命令:nginx -V

上面显示了我们Nginx的版本,接下来,我们继续输入命令:nginx

如果弹出防火墙警报的话,我们一定要点击“允许访问”。

运行成功后,然后保持Dos命令行窗口,不要关闭!!!

我们打开一个浏览器,然后输入地址:http://127.0.0.1/  或者 http://localhost/

说明我们的Nginx启动成功了。

然后进入到“E:\Program Files\nginx-1.22.1\html”目录下

这是Nginx默认启动的Web程序,我们将打包好的Unity WebGL程序复制进来(覆盖index.html)。

我们回到刚才打开的浏览器,然后按“F5”刷新一下

 

我们旋转一下,然后再向前移动一下。

这样就运行成功了。如果我们将其部署到公网服务器上面,并且解析到指定域名上面,我们就可以在所有人通过域名就能运行我们的unity程序了。

本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索