Version: 2017.1
Cross-Platform Considerations
Troubleshooting

Публикация сборок

В любой момент разработки игры можете захотеть посмотреть на то, как она выглядит вне редактора, при сборке в качестве самостоятельного приложения или веб-проигрывателя. В этом разделе рассказано, как вызвать и использовать окно Build Settings (настройки сборки) для создания разных сборок ваших игр.

Пункт меню File->Build Settings… позволяет открыть окно Build Settings. В нём выводится редактируемый список сцен для включения в сборку игры.

The Build Settings window
The Build Settings window

Список будет пуст при первом открытии этого окна в проекте. В таком случае, при сборке, в игру будет включена только текущая открытая сцена. Если вы желаете быстро собрать тестовый плеер с единственной текущей сценой, просто соберите плеер с пустым списком сцен.

Для создания сборки с несколькими сценами можно довольно просто добавить нужные сцены в этот список. Первый способ заключается в нажатии кнопки Add Current. Вы увидите, что текущая сцена появилась в списке. Второй способ предполагает перетаскивание в список сцены из окна Project View.

Следует заметить, что каждая из сцен в списке имеет свой индекс. Scene 0 — это первая сцена, которая будет загружена в сборке. Если вы желаете загрузить другую сцену во время игры, используйте в вашем коде метод Application.LoadLevel().

Если вы добавили более одной сцены и хотите изменить их порядок, просто перетаскивайте сцены в списке до тех пор, пока не добьётесь необходимого вам порядка.

Чтобы удалить сцену из списка, достаточно выбрать её в списке и нажать Command-Delete (на Mac) или Delete (на Win). Сцена пропадёт из списка и не будет включена в сборку.

Когда вы будете готовы к публикации своей сборки, выберите нужную платформу в списке Platform и удостоверьтесь, что напротив неё находится логотип Unity; если это не так, тогда нажмите кнопку Switch Platform, чтобы сообщить Unity о том, под какую платформу вы желаете совершать сборку. После этого, нажмите кнопку Build. Откроется стандартное диалоговое окно сохранения файла, в котором вы можете выбрать имя и расположение для игры. После нажатия кнопки Сохранить 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.

Further information about the Build Settings window can be found on the Build Settings page.

Сборка standalone плееров

With Unity you can build standalone applications for Windows, Mac and Linux. It’s simply a matter of choosing the build target in the build settings dialog, and hitting the ‘Build’ button. When building standalone players, the resulting files will vary depending on the build target. For the Windows build target, an executable file (.exe) will be built, along with a Data folder which contains all the resources for your application. For the Mac build target, an app bundle will be built which contains the file needed to run the application as well as the resources.

Распространение standalone приложения на Mac заключается в передаче “app bundle” (в него упаковано всё необходимое). На Windows необходимо предоставить .exe-файл и папку Data, чтобы другие могли запустить приложение. То есть, чтобы другие пользователи могли запустить у себя ваши приложения, на их компьютерах должны быть файлы, которые для вас собрал Unity.

В недрах процесса сборки

Сперва процесс сборки разместит пустую копию игры там, где вы указали. Затем он начнёт прорабатывать список сцен в настройках сборки: открывать в редакторе одну из них за раз, оптимизировать их и интегрировать их в пакет приложения. Он также подсчитает все ассеты, необходимые включенным в сборку сценам и сохранит эти данные в отдельном файле внутри пакета приложения.

  • Любой GameObject в сцене с тэгом ‘EditorOnly’ не будет включён в собираемый пакет. Это удобно для отладки скриптов, которые не должны оказаться в финальной игре.

  • Все объекты в текущем уровне уничтожаются при загрузке нового уровня. Чтобы это предотвратить, используйте DontDestroyOnLoad() на любых объектах, которые вы желаете уберечь от уничтожения. Обычно это используют для проигрываемой при загрузке уровня музыки, или для скриптов игровых контроллеров, которых хранят состояние и прогресс игры.

  • После загрузки уровня будет разослано сообщение OnLevelWasLoaded() всем активным игровым объектам.

  • Для дополнительной информации о том, как лучше всего создавать игры, в которых насколько сцен (например, главное меню, экран рейтинга и сами уровни игры), ознакомьтесь с нашими уроками.

Предварительная загрузка (далее - прелоадинг)

Опубликованные сборки автоматически осуществляют прелоадинг всех ассетов в сцене при её загрузке. Исключением является сцена 0, так как она, как правило, используется в качестве загрузочного экрана, который нужно отобразить как можно быстрее.

Если вы желаете, чтобы прелоадинг осуществлялся для всего содержимого, достаточно просто создать пустую сцену, в которой будет вызываться Application.LoadLevel(1), и в окне настроек сборки сделать её первой в списке сцен (чтобы индекс был 0). Все последующие уровни будут загружаться с прелоадингом.

Вы готовы собирать игры

На данный момент вы изучили, как использовать интерфейс Unity, как использовать ассеты, как создавать сцены и как публиковать ваши сборки. Теперь вас ничто не останавливает от создания игры вашей мечты. Мы уверены, что по пути вам ещё предстоит многое узнать, и мы всегда рядом, чтобы помочь вам во всём разобраться.

Для дополнительной информации о том, как создавать игровые уровни, см. раздел Построение сцен.

Для дополнительной информации о написании скриптов для вашей игры, см. раздел Скриптинг.

Для дополнительной информации о создании графических ассетов, см. раздел Импорт и создание ассетов данного руководства.

Для общения с другими пользователями Unity, посетите Unity Forums. Там вы можете задавать вопросы, делиться проектами, строить команду, можете делать там всё, что вы захотите. Обязательно загляните на форумы хотя бы один раз, потому что мы хотим посмотреть на невероятные игры, которые вы создадите.

Cross-Platform Considerations
Troubleshooting