第六十章 Unity 发布Web平台

news2025/2/27 11:10:32

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上面。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CubeScript : MonoBehaviour
{
    // 移动速度
    private float moveSpeed = 10.0f;

    // 旋转速度
    private float rotationSpeed = 100.0f;

    // Update is called once per frame
    void Update()
    {
        // 前后左右方向
        float v = Input.GetAxis("Vertical");
        float h = Input.GetAxis("Horizontal");
        Vector3 direction = new Vector3(h, 0, v);
        transform.Translate(direction * moveSpeed * Time.deltaTime, Space.Self);

        // 向左旋转,替换GetKey方法
        if (Input.GetKey(KeyCode.Q))
        {
            transform.Rotate(Vector3.down * rotationSpeed * Time.deltaTime, Space.Self);
        }

        // 向右旋转,替换GetKey方法
        if (Input.GetKey(KeyCode.E))
        {
            transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime, Space.Self);
        }
    }
}

接下来,我们点击菜单栏: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FastDFS+Nginx - 本地搭建文件服务器同时实现在外远程访问「端口映射」(1)

大家好,我是晓星航。今天为大家带来的是面向对象编程相关的讲解!😀 文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Ngi…

ARM 处理器模式(二)

文章目录 ARM 处理器模式工作模式模式切换内核寄存器各个模式对应的内核寄存器 ARM 处理器模式 ARMv7-a 处理器共有 9 种工作模式 工作模式 User:用户模式,非特权模式,大部分程序运行的时候就处于此模式FIQ:快速中断模式&#x…

算法修炼之练气篇——练气二十二层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…

Vue列表展示计数器【第二篇】

&#x1f331; 1、vue列表展示案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vueDemo02列表展示</title> </head> <body> <div id"xy"><!--原始展示方式…

2023最新CleanMyMac中文版系统清理优化工具

CleanMyMac中文版功能非常的强大&#xff0c;操作简单&#xff0c;使用起来高效快捷&#xff0c;软件自身拥有一个安全数据&#xff0c;且拥有一定的规格&#xff0c;CleanMyMac中文版能够确定软件能够正确选择和清理Mac垃圾文件&#xff0c;更加安全&#xff0c;可靠。一键快速…

thinkPhP6.0安装教程图解--PHP框架安装

ThinkPhP 6.0 安装 1.环境检查 首先&#xff0c;thinkphp6.0&#xff0c;要求php的环境是7.2.5及以上的&#xff0c;所以先检查自己的php环境是否符合要求。 在cmd命令窗口中输入php -v 或者没有配置环境变量的话&#xff0c;可以在php编辑器中输出php_info()或则PHP_VERSIO…

记录一次异常:feign异常--NoSuchBeanDefinitionException: No qualifying bean of type

1、完整报错 2023-06-29 16:17:28.127 WARN 3732 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyExcep…

JetCache 使用简单案例到源码解析读这一篇就够

背景 github.com/alibaba/jet… 一、使用方法&#xff1a; 1. 创建项目— 此处使用springboot项目 2. 引入starter <dependency> <groupId>com.alicp.jetcache</groupId> <artifactId>jetcache-starter-redis</artifactId><version>2…

Servlet3.0 新特性全解

Servlet3.0新特性全解 tomcat 7以上的版本都支持Servlet 3.0 Servlet 3.0 新增特性 注解支持&#xff1b;Servlet、Filter、Listener无需在web.xml中进行配置&#xff0c;可以通过对应注解进行配置&#xff1b;支持Web模块&#xff1b;Servlet异步处理&#xff1b;文件上传AP…

DEV SIT UAT PET SIM PRD PROD常见环境英文缩写含义

一、英文缩写 英文中文 DEV development开发 SIT System Integrate Test系统整合测试&#xff08;内测&#xff09; UAT User Acceptance Test用户验收测试 PET Performance Evaluation Test性能评估测试&#xff08;压测&#xff09; SIM simulation仿真 PRD/PROD produ…

我们花一个月调研了小红书种草的新机会和增长策略

分析师&#xff1a;Jane、彬超 编辑&#xff1a;yolo 出品&#xff1a;增长黑盒研究组 *本报告为增长黑盒独立研究系列&#xff0c; 与第三方不存在任何利益关系 随着618的临近&#xff0c;小红书再次成为了品牌重要的“营销战场”。面临着经济环境的不确定性&#xff0c;想必各…

数据结构_串

目录 1. 串的定义和实现 1.1 串的定义 1.2 串的存储结构 1.2.1 定长顺序存储表示 1.2.2 堆分配存储表示 1.2.3 块链存储表示 1.3 串的基本操作 2. 串的模式匹配 2.1 简单的模式匹配算法 2.2 串的模式匹配算法——KMP算法 2.2.1 字符串的前缀、后缀和部分匹配值 2.2…

你不知道的裁员攻略:真正的离职赔偿是2N起步,不是N+1!计算赔偿金时,年终奖要计入总收入!...

最近裁员现象猖獗&#xff0c;许多人都不知道如何维护自己的合法权益&#xff0c;在和公司撕扯时屡屡被坑。一位曾经和字节撕过且成功的网友&#xff0c;友情给大家写了一份离职攻略。但要注意&#xff0c;这份攻略只针对那些守规矩的大公司&#xff0c;如果是不守规矩的小公司…

得ChatGPT者,得智能客服天下?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 在现代社会&#xff0c;高效、专业的客服服务已成为企业、组织机构竞争力的关键要素。智能客服系统应运而生&#xff0c;智能客服系统对客服的赋能作用和价值主要表现在提高效率、降低成本、优化用户体验、深度挖掘用户需求…

【综述】结构化剪枝

目录 摘要 分类 1、依赖权重 2、基于激活函数 3、正则化 3.1 BN参数正则化 3.2 额外参数正则化 3.3 滤波器正则化 4、优化工具 5、动态剪枝 6、神经架构搜索 性能比较 摘要 深度卷积神经网络&#xff08;CNNs&#xff09;的显著性能通常归因于其更深层次和更广泛的架…

QML转换(Transformation)

目录 一 QML介绍 二 QML的使用场合 三 实例演示 一 QML介绍 QML是Qt Quick的缩写&#xff0c;它是一种新型的、面向对象的、跨平台的脚本语言&#xff0c;可以用来描述用户界面或应用程序的交互逻辑。QML可以在Qt应用程序中使用&#xff0c;也可以在其他JavaScript应用程序中…

Python入门(九)字典(二)

字典&#xff08;二&#xff09; 1.遍历字典1.1 遍历所有键值对1.2 遍历字典中的所有键1.3 按特定顺序遍历字典中的所有键 2.嵌套2.1 字典列表2.2 在字典中存储列表2.3 在字典中存储字典 作者&#xff1a;xiou 1.遍历字典 一个Python字典可能只包含几个键值对&#xff0c;也可…

【源码解析】SpringBoot自定义条件及@Conditional源码解析

自定义注解 自定义条件类 public class MessageCondition extends SpringBootCondition {Overridepublic ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) {MultiValueMap<String, Object> attrs metadata.getAllAnnota…

成年人的崩溃只在一瞬间,程序员凌晨三点写的代码竟被女友删了...

对于恋爱中的情侣来说&#xff0c;吵架是很正常的事情&#xff0c;就算是再怎么亲密&#xff0c;也难免会出现意见不合的时候。 吵架不可怕&#xff0c;可怕的是&#xff0c;受吵架情绪的影响&#xff0c;做出一些比较“极端”的事情。 之前某社交平台上一位女生吐槽自己的男…

Ubuntu 本地部署 Stable Diffusion web UI

Ubuntu 本地部署 Stable Diffusion web UI 0. 什么是 Stable Diffusion1. 什么是 Stable Diffusion web UI2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 Stable Diffusion web UI6. 启动 Stable Diffusion web UI7. 访问 Stable Diffusion web UI8. 其他 0. 什么是…