在不下载的情况下使您的Unity游戏可玩:WebGL方式
#javascript #gamedev #webgl #unity3d

制作了我的第一场比赛后,我唯一专注于在itch.io上发布并将其称为“一天”。但是,当时我不承认的一个障碍是一些玩家的性质迟钝。让我解释。

进入iTch.io页面时,没有多少人想继续下载实际的游戏。如果您的游戏不兼容HTML5,它已成为PlayTesters的一种未提及的不良印象。

今天,在发布到iTch.io之前,我遇到了一个构建我的WebGL项目的问题,并想回顾出发布WebGL构建时发生的一些常见问题。

目录

WebGL构建与Windows构建之间的区别

Image description

据我所知,WebGL平台是您的游戏跨平台和可玩的方式,而无需额外下载游戏。该游戏嵌入了Web浏览器中,因此您可以在Web服务器上玩游戏!在游戏开发过程中,弄清楚您的游戏是否格式化有许多障碍,WebGL是一个以相同方式呈现游戏方式的平台。

用更专业的术语,WebGL是一种JavaScript API,用于在您的Web浏览器上直接下载任何3D或2D游戏。 JavaScript代码和着色器代码通常在您使用的引擎中预先编写。就我而言,我将更多地关注Unity WebGL的工作原理以及我进行的一些小修复程序,这使您更容易测试自己的WebGL构建。

Unity的构建设置

纹理压缩:通过删除多余和可移动数据来减少纹理的内存输出的技术范围。

如果您前往文件>构建设置>播放器设置,则将找到主要处理WebGL构建纹理压缩格式的设置字段。如果您在运行游戏时发现我发现的错误,本节将非常有帮助。

Image description

WebGL中的纹理压缩是为几个平台创建构建的一种方式,同时保持设备可以牢记的纹理压缩。由于每个桌面和移动设备都会具有不同的纹理压缩格式,因此可能会发生冲突。但是,我们想在所有平台上使用压缩纹理,因此我们需要支持每个设备的纹理压缩格式。因此,要在所有设备及其压缩纹理上运行,我们必须针对最合适的压缩格式。

压缩格式:确定Unity在构建步骤中如何压缩文件。

Unity默认情况下将其压缩格式设置为“ GZIP”。这是由于GZIP文件在HTTP和HTTPS上的所有浏览器构建速度更快,并且本地支持。但是,GZIP文件比Brotli文件相对较大,Brotli文件是您可以使用的下一个压缩方法。

与替代GZIP相比,

Brotli压缩提供了最佳的压缩比和较小的压缩文件。但是,构建时间通常更长,可以压缩,这会增加释放最终构建时的等待时间。

最后,您都不能选择。禁用压缩是针对通过脚本构建自己的压缩的开发人员的目标。如果您不在服务器上使用静态压缩,通常是错误的原因,并且通常是构建下载构建的等待时间。

的原因。

纹理压缩是必要的,这是因为我们每个设备的空间,内存和时间有限。由于纹理采用了影响游戏性能的如此大的二进制文件,因此我们希望尽可能限制这一点,这就是压缩的地方。

Image description

解压缩后备:确定在浏览器中构建运行时的Unity处理如何下载文件。

在播放器设置中此选项>发布设置使Unity能够将JavaScript解压缩器自动嵌入到构建中。解压缩器与您以前决定的压缩方法一致。否则,解压缩器如果浏览器没有自动解压缩内容。

如果已启用,Unity将 .unityweb 扩展添加到您的构建文件。如果您对服务器配置不太了解或不可用,这将很有帮助。尽管如此,启用此功能会导致更大的装载机尺寸,并且效率较低。

这就是为什么Unity默认情况下禁用此功能的原因。因此,您的构建文件将包括与您的压缩方法相对应的扩展名。

Web浏览器功能

Image description

有时在网络浏览器上玩游戏时,帧速率可能会使您的游戏视图播放速度降低。当然,一个原因可能是由于您花费很长时间处理的任何游戏功能。可以从Unity内的Profiler窗口中查看与游戏功能有关的任何问题。

但是,另一个修复程序可以转到您的Web浏览器的设置。如果您转到系统设置,则可能会找到一个称为“使用硬件加速度的功能”的功能。此功能允许任何应用程序都比仅通过CPU更有效地具有硬件执行任务。这将您的CPU中处理的任务交换到其他领域,例如GPU,DSP和声卡。

通过此功能,游戏性能变得更加流畅。但是,如果性能缓慢,冻结或崩溃持续存在,则应将其保留。

这实际上是在Unity建立游戏时要寻找的主要功能。这可能令人生畏,但我希望这对Unity开发人员建立WebGL游戏有所帮助。感谢您的阅读!

更多资源和参考

  1. Unity WebGL Documentation
  2. Texture Compression in WebGL
  3. An Introduction to Texture Compression in Unity
  4. Hardware Acceleration
  5. 您可以实现的进一步配置在您自己的Web浏览器中。为了使浏览器在下载时解压缩任何Unity构建文件,必须更改Web服务器以在目标HTTP标头中提供压缩文件。换句话说,此过程称为 本机浏览器解压缩。 ,由于它比任何JavaScript解压缩后备更快,因此这通常是减少应用程序启动时间的更有效方法。由于该过程非常复杂,我将离开链接here进行进一步阅读。