跨平台注意事项
故障排除

发布构建

在创建游戏的任何时候,都可能希望看到游戏在 Editor 之外独立构建和运行时的外观。本部分将介绍如何访问 Build Settings 以及如何创建不同版本的游戏。

File->Build Settings… is the menu item to access the Build Settings window. It pops up an editable list of the scenes that will be included when you build your game.

Build Settings 窗口
Build Settings 窗口

第一次在项目中查看此窗口时,它将显示为空白。如果在此列表为空白时构建游戏,则只有当前打开的场景才会包含在构建中。如果希望快速构建只有一个场景文件的测试播放器,只需构建一个带有空白场景列表的播放器即可。

可以轻松将场景文件添加到列表中来进行多场景构建。有两种方式可以添加场景文件。第一种方式是单击 Add Open Scenes 按钮。此时将看到当前打开的场景出现在列表中。添加场景文件的第二种方式是将它们从 __Project 视图__拖到列表中。

At this point, notice that each of your scenes has a different index value. Scene 0 is the first scene that will be loaded when you build the game. When you want to load a new scene, use Application.LoadLevel() inside your scripts.

如果添加了多个场景文件并想要重新排列它们,只需在列表中单击场景并上下拖动,直到按所需顺序排列它们为止。

如果要从列表中删除场景,请单击场景以使其突出显示,然后按 Command-Delete。该场景将从列表中消失,不会包含在构建中。

当准备好发布构建时,请选择 Platform 并确保平台旁边出现 Unity 徽标;如果没有,请单击 Switch Platform 按钮让 Unity 知道您的目标构建平台。最后,按 Build 按钮。随后可使用标准的 Save 对话框为游戏选择名称和位置。单击 Save 时,Unity 便会立即构建游戏。就是这么简单。如果不确定要将构建的游戏保存到何处,请考虑将其保存到项目根文件夹中。不能将构建保存到 Assets 文件夹中。

Enabling the Development Build checkbox on a player will enable Profiler functionality and also make the Autoconnect Profiler and Script Debugging options available.

有关 Build Settings 窗口的更多信息,请参阅 Build Settings 页面。

构建独立平台播放器

使用 Unity 可为 Windows、Mac 和 Linux 构建独立应用程序。只需在 Build Settings 对话框中选择构建目标,然后点击“Build”按钮即可。 构建独立平台播放器时,生成的文件将根据构建目标而有所不同。如果是 Windows 构建目标,则会构建可执行文件 (.exe) 以及包含应用程序所有资源的 Data 文件夹。如果是 Mac 构建目标,则会构建一个应用程序捆绑包,其中包含运行应用程序所需的文件以及资源。

在 Mac 上分发独立版其实就是提供应用程序捆绑包(所有内容都包含在此包中)。在 Windows 上,则需要提供 .exe 文件和 Data 文件夹以供其他人运行。可以这样想:就像 Unity 为您构建的结果文件一样,其他人也必须在他们的计算机上拥有相同的文件,这样才能运行您的游戏。

构建过程详解

构建过程将在指定的任何位置放置构建的游戏应用程序的空白副本。然后,对构建设置中的场景列表进行处理,在 Editor 中逐个打开场景,对场景进行优化,然后将场景集成到应用程序包中。此外,还会计算这些场景所需的所有资源,并将这些数据存储在应用程序包中的单独文件内。

  • 场景中使用“EditorOnly”标记的所有__游戏对象__都不会包含在发布的构建中。这些游戏对象对于调试脚本非常有用,但不需要包含在最终游戏中。

  • 加载新关卡时,前一关卡中的所有对象都将被销毁。要阻止此行为,请对不希望销毁的对象使用 DontDestroyOnLoad()。此功能最常用于在加载关卡时保持音乐播放,或者供游戏控制器脚本用于保持游戏状态和进度。

  • After the loading of a new level is finished, the message: OnLevelWasLoaded() will be sent to all active game objects.

  • For more information on how to best create a game with multiple scenes, for instance a main menu, a high-score screen, and actual game levels, check our Tutorials.

预加载

发布的构建会在场景加载时自动预加载场景中的所有资源。此规则的例外是 Scene 0。这是因为第一个场景通常是一个启动画面,所以希望尽快显示它。

要确保预加载所有内容,可创建一个调用 Application.LoadLevel(1) 的空场景。在构建设置中,使此空场景的索引为 0。所有后续关卡都将进行预加载。

现在准备好构建游戏了

到目前为止,已经学习了如何使用 Unity 的界面、如何使用资源、如何创建场景以及如何发布构建。所以,尽情制作自己梦想的游戏吧!在此过程中肯定还需要学习更多知识,我们乐意随时为您提供帮助。

要了解有关构建游戏关卡的更多信息,请参阅关于创建场景的部分。

要了解有关脚本的更多信息,请参阅脚本部分

要了解有关创建艺术资源和导入资源的更多信息,请参阅本手册的资源工作流程

To interact with the community of Unity users and developers, visit the Unity Forums. You can ask questions, share projects, build a team, anything you want to do. Definitely visit the forums at least once, because we want to see the amazing games that you make.

跨平台注意事项
故障排除