Unity3d вики
Advertisement

Публикация проекта[]

После создания Вы захотите увидеть как она выглядит вне редактора - в вебплейере или на компьютере. Данная статья объясняет как открыть установки построения проекта и как создать различные версии вашей игры.

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

PublishingBuilds-0


















====Окно установок построения.
При первом открытии этого окна оно будет пустым. Если вы попробуете посторить Вашу игру когда окно пустое, игра будет включать только текущую открытую сцену Если Вы хотите быстро построить тестоывй проект с одной сценой, просто запустите построение с пустым окном.====

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

Заметим, что каждая Ваша сцена имеет индекс. Сцена 0 - первая сцена, которая будет загружена когда Вы скомпилируете игру. Когда Вы захотите загрузить новую сцену - используйте Application.LoadLevel() в Вашем скрипте.

Если вы добавляете больше одной сцены и хотите изменить их порядок просто щелкните и пертащите сцену в списке выше или ниже.

Если Вы хотите удалить сцену из списка выделите ее и нажмите Command-Delete. Сцена исчезнет из списка и не будет включена в проект.

Когда вы готовы опубликовать игру - выберите Платформу и проверьте, что лого Юнити рядом с нужной платформой. Если нет - тогда кликните Переключить платформу (Switch Platform) чтобы Юнити поняло под какую платформу Вы хотите построить игру. В конце нажмите кнопку Построить (Build). Вам будет предложено выбрать имя и место куда будет сохранена Ваша игра. Когда Вы нажмете Сохранить (Save), Unity построить Вашу игру. Если Вы не уверены куда сохранять игру,- сохраняйте ее в корневую папку проекта. Нельзя сохранять игру в папку Assets.

Включение Development Build разрешет функциональность Профайлера и также сделает доступными опции Автоподключение к профайлеру (Autoconnect Profiler) и Отладка скриптов (Script Debugging).

Потоковая загрузка сцен в Веб плейере[]

Потоковая загрузка сцен в Веб плейере позволяет начать игру сразу после загрузки Сцены 0. Если в Вашей игре 10 уровней, не очень хорошо заставлять игрока ждать пока не загрузятся все 10. Когда Вы публикуете игру в таком формате все ассеты будут упорядочены в порядке появления файлов сцен. И тогда как только Сцена 0 будет загружена можно будет начинать игру.

Упрощая - этот режим позволяет игроку начать играть быстрее.

Есть только одна вещь, о которой Вы должны побеспокоиться - нужно проверить, что уровень, на который Вы хотите перейти уже загружен.

В обычной, не потоковой игре, Вы используете такой код для загрузки уровня:

1
Application.LoadLevel("levelName");

В потоковом вебплейере Вы должны сначала проверить, что уровень загружен. Это делается через функцию CanStreamedLevelBeLoaded() вот так:

1
2
3
4
5
6
7
var levelToLoad  =  1;
 
function LoadNewLevel () {
   if (Application.CanStreamedLevelBeLoaded (levelToLoad)) {
      Application.LoadLevel (levelToLoad);
   }
}

Если Вы хотите отображать прогресс загрузки Вы можете узнать прогресс через функцию GetStreamProgressForLevel().

Офлайн развертывание Вебплейера[]

Если эта опция включена, тогда файл UnityObject.js (используемый для связи плейера и вебстраницы) будет помещен рядом со скомпилированной игрой. Это позволит игроку запускать игру даже не имея подключения к интернету. Обычно UnityObject.js файл загружается с сервера Юнити, чтобы получить наиболее последнюю версию.

Построение стендэлон проекта[]

В Юнити можно построить приложение для Windows и Mac (Intel, PowerPC или Universal, которая будет запускаться на обоих архитектурах). Просто нужно выбрать цель в диалоге установок сборки и нажать кнопку 'Build'. Результирующие файлы будут зависеть от целевой платформы. На Windows будут построены выполняемый файлы (.exe), с папкой Data, которая содержит все ресурсы Вашего приложения. На Mac будет построен app бандл, содержащий файлы, необходимые для запуска приложения и все ресурсы.

Распространение игры на Mac просто сводится к распространению app бандла (все упаковано в нем). На Windows Вам нужно передать пользователю как .exe файл, так и папку Data. Проще: другие люди должны иметь у себя все те файлы, что Юнити сделало при построении приложения.

Внутри процесса сборки.[]

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

  • Любой объект в сцене с тегом 'EditorOnly' не будет включен в сборку. Это полезно для отладочных скриптов, не включаемых в финальную игру.
  • Когда загружается новый уровень, все объекты в предыдущем уровне разрушаются. Для предотвращения этого используйте DontDestroyOnLoad() в любом объекте, которые не нужно удалять. Это наиболее полезно для общего контроллера игры, или, например проигрывания музыки пока грузится уровень.
  • После окончания загрузки уровня рассылается сообщение OnLevelWasLoaded() всем активным объектам.
  • Для большей информации о том как лучше создавать игры с несколькими сценами, как вывести главное меню, как вывести экран достижений и наконец сам уровень игры смотри Scripting Tutorial.pdf

Внутри процесса сборки под iOS[]

Приложение для iPhone/iPad строится в два шага:

  1. Генерируется XCode проект со всеми требуемыми библиотеками, предрассчитанным .NET кодом и сериализированными ассетами.
  2. XCode собирается и разворачивается на девайсе.

Когда нажимается "Build" в диалоге "Build settings" выполняется только первый шаг. Когда нажимается "Build and Run" выполняются оба шага. Если в диалоге сохранения приложения пользователь выбрал уже существующую папку отображается предупреждение. В данный момент можно выбрать два режима генерирования проекта XCode:

  • replace - все файлы в целевой папке удаляются и новые генерируются
  • append - папки "Data", "Libraries" и корневая папка проекта очищаются и заполняются новым сгенерированным контентом. файл проекта XCode обновляется для соответствия с изменениями проекта Юнити. Подпапка "Classes" проекта XCode может быть использована для сохранения нативного кода, который не будет изменяться от сборки к сборке. Однако рекомендуется делать ее регулярный бэкап. Этот режим поддерживается только для уже существующих XCode проектов, сгенерированый Юнити той же версии.

Если нажать Cmd+B, тогда вызовется автоматический процесс сборки в последнюю выбранную для приложения папку. В этом случае выбирается режим по умолчанию - append.

Андроид приложения строятся в два шага:[]

  1. Пак приложения (файл .apk) генерируется со всеми требуемыми библиотеками и сериализированными ассетами.
  2. Пак заливается на устройство.

Когда нажимается "Build" в диалоге "Build settings" выполняется только первый шаг. Когда нажимается "Build and Run" выполняются оба шага. Если нажать Cmd+B, тогда вызовется автоматический процесс сборки в последнюю выбранную для приложения папку.

При первой попытке построить проект Android, Юнити спросит у Вас указать место, куда установлен Android SDK, который требуется для сборки и инсталлирования Вашего приложения на устройство Android. Вы можете изменить эту установку позднее в Preferences. Когда собираете приложение на Android, проверьте, что на устройстве включены "USB Debugging" и "Allow mock locations". Вы можете проверить, что операционная система видит Ваше устройство запустив команду adb, находящуюся в папке Android SDK/platform-tools. Это работает и на Mac и на Windows. Юнити строит архив приложения (файл .apk) для Вас и инсталлирует его на подключенное устройство. В некоторых случаях Ваше приложение не может автостартовать, как на iPhone, так что Вам нужно разблочить  экран, и в некторых редких случаях запустить установленное приложение из меню.Компрессия текстур

В диалоге Build Settings Вы также можете найти опицию Компрессия текстур (Texture Compression). По умолчанию Юнити использует формат текстур ETC1/RGBA16 для текстур, которые не имеют переопределенных индивидуальных установок (смотри Texture 2D / Per-Platform Overrides).

Если Вы хотите построить архив приложения (файл .apk) для специфической архитектуры, Вы можете исползовать опцию Texture Compression для переопределения поведения по умолчанию. Любая текстура, у которой установлено - без компрессии будет оставлена без изменений. Только текстуры исползующие компрессированный формат будут использовать формат, выбранный в опции Texture Compression.

Чтобы быть уверенным, что прилодение будет устанавливаться только на устройства, которые поддерживают данный формат текстур, Юнити редактирует AndroidManifest. Это включит фильтрацию на Андроид маркете, чтобы отсеять устройства не поддерживающие этот формат.

Предзагрузка.[]

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

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

На данный момент Вы узнали как использовать интерфейс Юнити, как использовать ассеты, как создать сцену и как построить приложение. Ничего больше не останавливает Вас от создания игры Вашей меты. Вам, конечно, нужно еще очень много узнать. Вот вам для дальнейшего изучения:

Чтобы узнать больше деталей о использовании самого Юнити, Вы можете продолжить чтение Мануала или пройти к Урокам.

Чтобы узнать больше деталей о компонентах, почитайте Справочник компонентов.

Чтобы узнать больше деталей о скриптинге, почитайте Обзор скриптинга .

Чтобы узнать больше деталей о создании арта, почитайте секцию Ассеты мануала.

Для взаимодействия с коммунити посетите Форум. Вы можете задать вопросы, поделиться проектом, собрать команду. Посетите форумы по крайней мере один раз, потому что мы хотим увидеть удивительные игры, которые вы делаете.

Advertisement