Этот раздел посвящён самым распространённым вопросам, которые возникают при начале работы с iOS.
О: Скачайте SDK, доступный на сайте разработчиков Apple, и укажите вашу команду, устройства и provisioning профили. Мы предлагаем вам базовый список шагов, чтобы начать работу.
О: Нет, но Unity iOS может собирать в iPad Simulator, если вы используете самую свежую версию SDK. Однако сам по себе симулятор приносит не очень много пользы для Unity, поскольку он не симулирует всю входящую информацию из iOS, или не симулирует производительность, которую вы получите на iPhone/iPad. Вам следует проверять игровой процесс напрямую изнутри Unity, используя iPhone/iPad для дистанционного управления, в то время как Unity Remote управляет приложением. Тогда, когда вы будете готовы протестировать производительность и оптимизировать игру, то публикуйте игру на iOS устройства.
О: В справке по скриптингу внутри вашей копии Unity iOS вы найдёте классы, которые предоставляют доступ к функционалу устройства, который вам понадобится при разработке ваших приложений. Для дополнительной информации, см. Input
О: У iOS относительной низкий филлрейт. Если ваши частицы покрывают достаточно большую часть экрана в несколько слоёв, это убьёт производительность iOS, даже используя самый простой шейдер. Мы предлагаем запекать ваши эффекты частиц в серии автономных текстур. А затем, во время работы приложения, вы можете использовать 1–2 частицы, чтобы отобразить их в виде анимированных текстур. Таким образом вы можете достичь достаточно приемлемых эффектов, не сильно увеличивая нагрузку.
О: На iOS физика очень сильно увеличивает нагрузку, т.к. требует много вычислений. Вам следует полностью избегать коллайдеров MeshColliders, если это возможно, но всё же их можно использовать, если уж очень надо. Чтобы увеличить производительность, используйте низкий Fixed Framerate через Edit->Time->Fixed Delta Time. Рекомендуется framerate в районе 10–30. Включите интерполяцию Rigidbody, чтобы достичь более гладкого движения, в то время как физика использует низкий Framerate. Чтобы достичь полностью гладкой частоты кадров без колебаний, лучше всего использовать значение deltaTime
, основанное на средней частоте кадров, которая ваша игра имеет на iOS. Рекомендуется либо использовать такое же значение, либо в 2 раза меньше. Например, если у вас 30 FPS, для Fixed Framerate вам следует использовать 15 или 30 FPS (0.033 или 0.066).
О: Да - если вы это реализуете. Unity iPhone поддерживает нативную систему плагинов, в которой вы можете добавлять любой функционал, который вам понадобится - включая получение доступа к галерее, музыкальной библиотеке, плееру iPod и любой другой функции, которую предлагает iOS SDK. Unity iOS не предоставляет API для доступа к этим функциями при помощи скриптов Unity.
A: UnityGUI достаточно увеличивает нагрузку, если используется много элементов управления (controls). В идеале стоит ограничить использование UnityGUI до игровых меню или минимального интерфейса во время игры. Важно учесть, что каждый объект со скриптом, который содержит вызов OnGUI()
, потребует дополнительного времени процессора, даже если блок OnGUI()
пуст. Лучше всего отключить все скрипты, которые вызывают OnGUI()
, если элементы управления интерфейса (GUI Controls) не используются. Вы можете сделать это пометив скрипт enabled = false
.
О: Попробуйте использовать GUILayout как можно меньше. Если вы вообще не используете GUILayout ни в одном из вызовов OnGUI()
, вы можете полностью отключить GUILayout рендеринг, используя MonoBehaviour.useGUILayout = false;
Это вдвое улучшит производительность рендеринга интерфейса. И наконец, используйте как можно меньше элементов интерфейса в 3D сценах.