- Начало разработки под Android
- Подготовка среды разработки для Android
- Доступ к функциям Android
- Привязка C, C++ или Java кода к скриптам
- Occlusion Culling (отсечение невидимой геометрии)
- Настройка начальной заставки
- Решение проблем и сообщения об ошибках
- Как Unity для Android отличается от версии для настольных компьютеров
- JavaScript со строгой типизацией
- ETC — рекомендуемый способ сжатия текстур
- Проигрывание видео.
- Движок unity для android
- Возможности, созданные для мобильных устройств
- Больше, чем просто движок
Начало разработки под Android
Разработка игр для устройств с Android OS требует подхода, схожего с разработкой под iOS. С другой стороны, аппаратное обеспечение Android-устройств не подчиняется чётким стандартам, что заставляет решать вопросы, которые отсутствуют при работе с iOS. Также присутствуют различия между версиями Unity для Android и iOS.
Подготовка среды разработки для Android
Прежде чем вы сможете протестировать свои игры на устройстве, вам нужно будет подготовить среду разработки. В частности — скачать и установить Android SDK нужной платформы и добавить ваше устройство в систему (этот процесс отличается для Windows и Mac). Об этом подробно написано на сайте Android-разработчиков, а также дополнительную информацию может предоставлять производитель вашего устройства. Так как это достаточно сложный процесс, мы приготовили небольшую инструкцию которая поможет вам подготовить всё необходимое для разработки. Если вам понадобится больше информации, вы сможете получить её на портале Android-разработчиков.
Доступ к функциям Android
Unity предоставляет API для доступа к средствам ввода и настройкам Android. Доступные классы задокументированы на странице Написание кода для Android сборок.
Привязка C, C++ или Java кода к скриптам
Unity позволяет вызывать функции, написанные на C/C++, непосредственно из скриптов (Java-функции могут быть вызваны непрямым способом). Чтобы узнать как из Unity получать доступ к функциям из нативного кода, посетите страницу о сборке плагинов для Android.
Occlusion Culling (отсечение невидимой геометрии)
Unity предоставляет поддержку occlusion culling, что очень полезно при оптимизации для мобильных платформ. Больше информации можно найти на странице Occlusion culling.
Настройка начальной заставки
Заставка, отображаемая при запуске игры, может быть настроена — см. эту страницу для дополнительной информации.
Решение проблем и сообщения об ошибках
Существует множество причин, из-за которых ваше приложение вылетает или не работает должным образом. Наше руководство по решению специфических для Android проблем поможет вам разобраться с причинами ошибок в кратчайшие сроки. Если после прочтения руководства вы предполагаете, что проблема именно в Unity — вам следует составить сообщение об ошибке. Обратитесь к этой странице за инструкциями.
Как Unity для Android отличается от версии для настольных компьютеров
JavaScript со строгой типизацией
Для улучшения производительности в Android-версии Unity динамическая типизация в JavaScript всегда отключена (как если бы к каждому скрипту автоматически применялась #pragma strict). Это важно помнить, если вы переносите на Android проект со старших платформ, и если вы столкнётесь с ошибками компиляции — проблему стоит искать в первую очередь в типизации. С такими ошибками обычно легко справиться, убедившись что типы всех переменных явно указаны или приведёны при инициализации.
ETC — рекомендуемый способ сжатия текстур
Хоть Unity Android и поддерживает DXT/PVRTC/ATC текстуры, Unity распакует текстуры в формат RGB(A) при выполнении, если эти методы сжатия на поддерживаются на конкретном устройстве. Это может серьёзно повлиять на производительность GPU отрисовки, потому рекомендуется использовать формат ETC. Он является фактическим стандартом для Android, и должен поддерживаться всеми современными устройствами. С другой стороны, ETC не поддерживает альфа-канал, и иногда 16-битные RGBA текстуры будут лучшим выбором по критериям качества, размера и скорости рендеринга там, где нужен альфа-канал.
Также возможно создать несколько дистрибутивов игры (apk-файлов) с разными форматами текстур, чтобы Android Market сам предоставлял для каждого устройства наиболее подходящий из дистрибутивов. За подробностями обратитесь к этой странице.
Проигрывание видео.
Видео текстуры (MovieTexture) не поддерживаются на Android, но программно доступно полноэкранное поточное проигрывание. Для дополнительной информации о поддерживаемых форматах файлов и API скриптинга, ознакомьтесь со страницой класса MovieTexture или со страницей поддерживаемых на Android форматах медиа.
Источник
Движок unity для android
Unity3D — это мультиплатформенный инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows и OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Linux, Android, Apple iOS, Windows Phone, BlackBerry, а также на игровых приставках Wii, PlayStation 3 и Xbox 360. Есть возможность создавать интернет-приложения с помощью специального подключаемого модуля к браузеру Unity, а также с помощью экспериментальной реализации в рамках модуля Adobe Flash Player. Позже от поддержки Flash отказались. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL.
В.: У меня отсутствует часть сообщений в консоли, хотя они точно должны там быть.
О.: Выключите опцию Collapse в консоли.
В.: Как мне реализовать паузу?
О.: Наиболее простой вариант — установить Time.timeScale в ноль.
В.: Как заставить два меш-коллайдера взаимодействовать?
О.: Включить опцию Convex у обоих.
В.: Как отключить/заблокировать курсор?
О.: Screen.showCursor; Screen.lockCursor.
В.:Как придать телу импульс?
О.: Rigidbody.AddForce с параметром ForceMode.Impulse.
В.: Как изменить громкость всех источников звука в сцене?
О.: AudioListener.volume
В.: Как избавиться от смазывания текстур при отдалении от них камеры?
О.: Отключить генерацию mipmaps в настройках импорта текстуры.
В.: Как отключить вывод предупреждений в консоль?
О.: #pragma warning disable (в справке msdn даны подробности)
В.: Как спозиционировать Scene View на выбранном объекте?
О.: Edit > Frame Selected или просто клавиша F.
В.: Как сделать объект невидимым для Raycast?
О.: Поставить его в стандартный слой Ignore Raycast.
В.: Как сделать так, чтобы игра была в горизонтальном а не в вертикальном режиме?
О.: В Player Settings нужно выбрать пункт Landscape left в Screen оrientation.
В.: Как отключить обработку коллизий для коллайдера?
О.: Включить опцию коллайдера isTrigger. Однако, такой коллайдер всё ещё будет принимать Raycast.
В.: Куда сохраняются логи редактора?
О.: C:\Documents and Settings\zaicheg\Local Settings\Application Data\Unity\Editor\Editor.log
Этот же документ можно посмотреть, нажав Open Editor Log в консоли.
В.: Куда сохраняются логи приложения?
О.: Для standalone: _Data\output_log.txt. Для web: C:\Documents and Settings\user\Local Settings\Temp\UnityWebPlayer\log
В.: Где можно посмотреть, какие ресурсы сколько занимают в моём билде?
О.: Там же, в Editor.log (после сборки билда).
В.: У меня глючит физика.
О.: Проверьте, осущетвляются ли все физические действия в FixedUpdate(). Увеличьте размеры объектов. Избавьтесь от тонких (или безтолщинных) мешей (Plane). Уменьшите FixedTimesetp. НЕ ДВИГАЙТЕ СТАТИЧЕСКИЕ КОЛЛАЙДЕРЫ (начиная с Unity5 уже можно, но всеравно не стоит)
B.: Не получается отредактировать элемент массива mesh.vertices (mesh.normals и прочее).
О.: Редактируйте во временном массиве vertTemp, а потом mesh.vertices = vertTemp.
В.: Я отключил скрипт, но он всё равно частично работает!
О.: Отключение скрипта действует лишь на вызов метода Update(). Start, Awake и прочие будут работать.
В.: Как увеличить частоту физических расчётов?
О.: Edit > Project Settings > Time > Fixed Timestep
В.: Как приостановить выполнение в Editor Mode (поставить на паузу)?
О.: Debug.Break
В.: Как отобразить кириллицу в GUI?
О.: Локализация в коде это плохо. Нужно хранить текст в текстовых файлах и через код вытаскивать нужные строчки. Например, так (не самый лучший пример, но суть понятна)
В.: Как мне подгружать дополнительные ресурсы в рантайм?
О.: AssetBundles.
В.: Как менять хоткеи редактора?
О.: HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor
В.: Как разрешить игре работу «в фоне»?
О.: Edit → Project Settings → Player → Run in Background
В.: Почему не работает динамичный батчинг?
О.: В Unity есть лимит на количество вертексных атрибутов в 900 штук (лимит поставлен юнитеками опытным путем, может быть изменен в будущем, самому поменять его нельзя), именно вертексов, а не поликов. Т.е. смотрим на шейдер, которым хотим что-то отрисовать, на его входящие параметры. Видим, например, position, uv, normal — 3 атрибута. Делим 900 на 3, получаем лимит в 300 вертексов. Вот если модели с материалом на данном шейдере будут не более 300 вертексов — они будут сбатчены. Т.е. если отказаться от normal в шейдере, то получим position, uv — 900 / 2 = лимит в 450 вертексов. Если откажемся от uv (можно посчитать в том же вершинном шейдере для статичной геометрии, но это уже специфичные вещи), то получим 900 / 1 = лимит в 900 вертексов. От position отказаться нельзя, это координаты самого вертекса. Аналогично, если передавать position, uv, uv2, normal, tangent, color, то получим 900 / 6 = лимит в 150 вертексов.
В.: Почему возникают баги с обработкой столкновений коллизии?
О.: Это не баги, это непонимание того, как работает физика в юнити, уже было неоднократно объяснено. Коллайдеры без RB двигать нельзя, двигать нельзя, двигать нельзя — они считаются статичным миром, который двигаться не может и внутри расчитывается с оптимизацией по кластерам. Как только статичный коллайдер двигается — весь статичный мир перестраивается. Объекты с RB считаются отдельно как динамические объекты. Собственно, отсюда и «баг» — т.к. статичный мир не может двигаться, то и события наступать не могут при его принудительном движении.
P.S. Судя по профайлеру тот же CharacterController является статик-коллайдером со всеми вытекающими последствиями.
P.P.S. После выхода Unity 5 стало можно, но всеравно не тоит.
В.: Почему не работает Asset store? Как заставить работать?
О.: Попробуйте выключить режим использования DirectX 11
В.: Какие отличия между Pro-версией и обычной?
О.: Заходим на страницу покупки Unity и на нужной лицензии выбираем Read more. После этого появится окошко, в котором можно посмотреть отличия между лицензиями.
В.: Где можно взять исходный код Unity?
О.: Нажмите здесь, выберете Россию, потом свяжитесь с представителями Unity Technologies. Разумеется это не бесплатно
Оригинальный текст с сайта Unity:
«If you want to license Unity to develop content for consoles and/or for embedding, cloud distribution or to access Unity source code, contact us here.»
Правила поведения в теме:
- Прежде чем задать вопрос, обязательно читайте F.A.Q. и пользуйтесь поиском по теме, возможно на ваш вопрос уже есть ответ!
Кнопка поиск находится в правом верхнем углу. - Сообщения, не относящиеся к теме и вопросы, ответы на которые есть в F.A.Q. будут удаляться.
- Обсуждение пиратских версий Unity или просьбы выложить пиратский контент, а так же сообщения, содержащие пиратский контент будут удаляться, а авторы по возможности будут караться.
В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку «Жалоба» под сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).
Сообщение отредактировал derak1129 — 07.10.20, 10:38
Источник
Возможности, созданные для мобильных устройств
Unity создана для разработки впечатляющих, производительных игр для всех мобильных устройств. Создайте игру, найдите аудиторию и развивайте бизнес в области мобильной разработки.
Тесные партнерские отношения Unity с разработчиками ведущих мобильных платформ, включая специальные инструменты для iOS и Android, обеспечат вам доступ к самым современным решениям для достижения успеха.
Больше, чем просто движок
Unity предлагает инструменты, которые обеспечат вам успех на каждом этапе разработки.
Universal Render Pipeline
Universal Render Pipeline (URP) — это оптимальное решение, которое дает высокое качество графики, производительность и масштабируемость для максимального охвата устройств и аудитории.
Это мощная готовая система рендеринга с полным набором инструментов разработки 3D-, 2D-, VR- или AR-проектов для художников.
Нативные 2D-инструменты
Unity предлагает вам продвинутые 2D-инструменты для разработки красивейших двумерных миров. Удобный и эффективный интерфейс помогает каждому сотруднику вашей студии — от художников и дизайнеров до аниматоров и инженеров — достигать новых высот.
Unity как библиотека
Реализуйте разные возможности на базе Unity, включая AR, 2D/3D-рендеринг в реальном времени, двумерные мини-игры и многое другое, непосредственно в ваших нативных мобильных приложениях.
Адресная система ассетов
Эта технологичная система ускоряет, разработку, сборку и загрузку игрового контента. Благодаря адресной загрузке снижается ресурсоемкость системы управления ассетами и упрощается создание и развертывание контентных обновлений. Кроме того, ускоряется итерация, позволяя студиям лучше оттачивать и тестировать свои проекты, повышая качество и производительность своих игр.
Визуальное программирование
Благодаря инструменту Bolt визуальное программирование в Unity позволяет любому сотруднику студии реализовать логику с помощью перетаскивания узлов вместо ручного ввода программного кода. Художники и дизайнеры смогут делать больше, не прибегая к помощи программистов, а программисты смогут быстрее прорабатывать идеи и прототипы.
AR Foundation
Среда, созданная специально для разработки AR, позволяет создать богатое приложение, а затем выпустить его на всех целевых мобильных AR-устройствах и гарнитурах. В состав среды включены базовые функции всех поддерживаемых платформ, а также реализованы уникальные особенности Unity, включая фотореалистичный рендеринг, физику, оптимизацию под конкретные устройства и многое другое.
Инструменты оптимизации для мобильных платформ
В Unity есть инструменты, оптимизированные для мобильной разработки. Наш мощный и расширяемый инструментарий поможет вам создавать мобильные приложения, которые отлично выглядят и превосходно работают на любых устройствах.
Решения для монетизации
Системы монетизации и другие инструменты Unity помогают превратить вашу игру в доходный бизнес. Узнайте, как увеличить доходность рекламы и встроенных покупок, сохранив превосходное качество игры.
Unity Analytics
Unity Analytics — это удобное средство контроля качества игры для ее дальнейшего развития. Получайте ценную информацию о показателях удержания, вовлеченности аудитории и сведения об установках в единой панели управления.
Unity Pro повышает эффективность разработки благодаря улучшенному комплексу инструментов и поддержки, повышенной расширяемости редактора и мощным инструментам для совместной работы, чтобы вы могли быстрее создавать игры и успешно выпускать их на рынок.
Источник