陈巧倩

Unity中文版-Create Gameplay Cross-Platform Publishing Builds(自翻译)

· 189 words · 1 minutes to read
Categories: Unity
Tags: Document

翻译Unity中文版的初衷是因为官方提供的中文版存在缺陷,而且翻译的不全。现在基于Unity2023.2版本对官方文档进行翻译。

发布构建 🔗

构建设置窗口包含了发布应用程序到各种平台所需的所有设置和选项。通过该窗口,你可以创建一个开发构建来测试你的应用程序,以及发布最终构建。要调整应用程序构建的发布设置,请转到File > Build Settings

使用构建中的场景面板来管理 Unity 在构建中包含的场景。你可以使用窗口的平台部分选择要构建的平台,并调整特定的设置,如压缩方法。这些选项取决于你选择的平台。更多信息,请参阅构建设置的文档。

选择构建构建并运行按钮开始构建过程。

通过出现的保存对话框,你可以为应用程序选择一个名称和保存位置。注意:取决于你构建的平台,Unity 可能只会提示你选择一个文件夹。

当你选择保存按钮时,Unity 将构建你的应用程序。如果你不确定要保存构建到哪里,可以考虑在你的根文件夹中创建一个子文件夹来保存你的构建。你不能将构建保存到 Assets 文件夹中。

关于使用 Unity 构建游戏的更多信息 🔗

要了解有关构建场景的更多信息,请参阅有关创建场景的文档。

要了解更多关于脚本的信息,请参阅有关脚本的文档。

要了解更多关于创建艺术和导入资源的信息,请参阅有关资源工作流的文档。

要与 Unity 用户和开发者互动,请访问 Unity 论坛。

减小构建文件大小 🔗

保持构建应用程序的文件大小最小化是非常重要的,尤其是对于移动设备或对于强加尺寸限制的应用商店。减小大小的第一步是确定哪些资源对文件大小有最大贡献,因为这些资源最有可能进行优化。在执行构建后,这些信息可以在编辑器日志中找到。打开控制台窗口(菜单: Window > General > Console),点击右上角的小下拉面板,选择 打开编辑器日志

编辑器日志提供了按类型分类的资源摘要,并按贡献大小的顺序列出了所有的个别资源。通常,像纹理、声音和动画占用的存储空间最多,而脚本、关卡和着色器的影响通常较小。列表中提到的文件头不是资源,实际上是添加到 “原始” 资源文件中的额外数据,用于存储引用和设置。文件头通常对资源大小几乎没有影响,但如果资源文件夹中有大量大型资源,则该值可能会很大。

编辑器日志帮助您识别可能要删除或优化的资源,但在开始之前,应考虑以下几点:

  • Unity 将导入的资源重新编码为其自己的内部格式,因此源资源类型的选择并不重要。例如,如果项目中有一个多层的 Photoshop 纹理,它在构建之前会被压平和压缩。将纹理导出为.png 文件对构建大小没有任何影响,因此您在开发过程中应使用最方便的格式。
  • Unity 在构建过程中会删除大多数未使用的资源,因此手动从项目中删除资源并不会有任何效果。唯一不会被删除的资源是脚本(通常非常小)和资源文件夹中的资源(因为 Unity 无法确定哪些资源是需要的,哪些不需要的) 。在此情况下,您应确保资源文件夹中只包含游戏所需的资源。您可能可以将资源文件夹中的资源替换为 AssetBundle - 这意味着 Unity 动态加载资源,从而减小了播放器的大小。

减小构建大小的建议 🔗

纹理 🔗

纹理通常占据构建的大部分空间。首先,可以使用压缩的纹理格式来减小文件大小。有关平台特定的纹理压缩的更多信息,请参阅文档。

如果这样还不能减小文件大小,请尝试减小纹理图像的物理尺寸(以像素为单位)。为了在不修改实际源内容的情况下进行操作,选中项目视图中的纹理,在检查器窗口中减小最大尺寸。为了在游戏中看到效果,放大使用纹理的GameObject,然后调整最大尺寸,直到在场景视图中开始变得更差。更改最大纹理大小不会影响纹理资源本身,只会影响游戏中的分辨率。

更改最大纹理大小不会影响纹理资源本身,只会影响游戏中的分辨率

默认情况下,Unity 在导入时会对所有纹理进行压缩。为了在编辑器中提高工作流程的速度,可以在 Unity < Preferences 中取消选中导入时压缩资源的复选框。不管此设置如何,所有纹理都会在构建中进行压缩。

网格和动画 🔗

你可以对网格和导入的动画剪辑进行压缩,以便在游戏文件中占用更少的空间。为了启用网格压缩,选中网格,然后在检查器窗口中将网格压缩设置为。网格和动画压缩使用量化,这意味着它占用的空间较小,但压缩可能会引入一些不准确性。试验一下哪种压缩级别对你的模型来说是可接受的。

请注意,网格压缩只会生成较小的数据文件,并不会在运行时使用更少的内存。动画关键帧缩减会生成较小的数据文件,并在运行时使用较少的内存;通常应始终启用它。有关此信息的更多详细信息,请参阅有关动画剪辑的文档。

减小.NET 库的大小 🔗

Unity 支持两个.NET API 兼容级别:.NET 4.x 和.NET Standard 2.0。.NET Standard 2.0 仅限于较小的.NET API 子集,这有助于减小文件大小。

构建玩家流程 🔗

在构建播放器时,有时您希望以某种方式修改构建的播放器。例如,您可能希望添加自定义图标,将一些文档复制到播放器旁边,或构建一个安装程序。您可以通过编辑器脚本使用 BuildPipeline.BuildPlayer 来运行构建,然后跟随所需的任何后处理代码:

// C# example.
using UnityEditor;
using System.Diagnostics;

public class ScriptBatch 
{
    [MenuItem("MyTools/Windows Build With Postprocess")]
    public static void BuildGame ()
    {
        // Get filename.
        string path = EditorUtility.SaveFolderPanel("Choose Location of Built Game", "", "");
        string[] levels = new string[] {"Assets/Scene1.unity", "Assets/Scene2.unity"};

        // Build player.
        BuildPipeline.BuildPlayer(levels, path + "/BuiltGame.exe", BuildTarget.StandaloneWindows, BuildOptions.None);

        // Copy a file from the project folder to the build folder, alongside the built game.
        FileUtil.CopyFileOrDirectory("Assets/Templates/Readme.txt", path + "Readme.txt");

        // Run the game (Process class from System.Diagnostics).
        Process proc = new Process();
        proc.StartInfo.FileName = path + "/BuiltGame.exe";
        proc.Start();
    }
}

PostProcessBuild 属性 🔗

您还可以使用 PostProcessBuildAttribute 的 postprocessOrder 参数为构建方法定义执行顺序,并在这些方法中使用 Process 类调用外部脚本,如最后一节所示。此参数用于从低到高对构建方法进行排序,并且您可以为其赋予任何负值或正值。

结论 🔗

搬砖愉快!