Unity 3D для разработки игр на Android-устройства | [Профессиональный мультиплатформенный игровой движок]



Реп: (59)

Прошлые версии


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.

Список поддерживаемых платформ:
  • Android
  • WP8
  • iOS
  • BlackBerry 10
  • Tizen
  • Wii U
  • OculisRift
  • GearVR
  • XBox 360/ XBox One
  • PS3/PS4/PSVita
  • Windows/Windows Store App
  • Linux/SteamOS
  • Mac
  • WebPlayer
  • WebGL
  • AndroidTV
  • Samsung SmartTV

С чего начать разработку под мобильные платформы:

Исходники:

Сайты:

Видеоуроки:

Текстовые уроки:

Плагины:

F.A.Q. (будет дополняться)
В.: У меня отсутствует часть сообщений в консоли, хотя они точно должны там быть.
О.: Выключите опцию 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

В.: Сколько стоит Unity?
О.: https://store.unity3d.com/shop/

В.: Какие отличия между 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 2020.1.7



Реп: (154)
darkwolf127, например, камера далеко от травы.



Реп: (6)
Lord Kratos @ 5.10.2012, 1:06 *
darkwolf127, например, камера далеко от травы.

Нет рядом тоже нет, ну даже допустим ладно, а бликов почему нет?



Реп: (154)
darkwolf127, да я имел ввиду вид в эдиторе. Там же тоже есть максимальное расстояние прорисовки.

Что вы бликами называете? Flare lens или, может, шейдер какой-нибудь?



Реп: (47)
Извините, как сделать ночь (как в Слендере), и как сделать объекты полупрозрачными (например, куб.)



Реп: (694)
Когда билдю под apk, пишет security error, а под винду все ок. В чем проблема? :(

Добавлено 05.11.2012, 18:38:

Azbul,

Это туман черного цвета :yes2:



Реп: (503)
Azbul,
Edit -> Render Settings -> Настраиваете свет Abmient Light как хотите.

Чтобы объект был полупрозрачным, сделайте полупрозрачную текстуру в фотошопе и наложите на объект. (Если фотошопом не владеете, скиньте мне я поправлю)

Добавлено 05.11.2012, 18:41:

kotketa,
мб в Player Settings что-то не так?



Реп: (59)
Unity 4Beta
  • полностью новая анимационная система «Mecanim».
  • поддержка DirectX 11
  • современную графику для мобильных устройств
  • динамические тени для мобильных игр
  • возможность создания приложения под Adobe Flash Player и Linux
  • усовершенствованный Profile для мобильных устройств



Реп: (4)
я ему указал сдк андроида ниже в консоли появляется ошибка типа вы запускали андроид сдк я его запустил он просит указать букву так понял карты памяти телефона я подключил по юсб указал букву он пишет сбой и fbx я гдето скачал плагин такой для 3дмакса но тот пишет о вин 32. а вообще все ли я поставил? я ставил сам юнати,3дмакс 9 и папку андроид сдк я ничего не пропустил или надо еще чтото ставить?



Реп: (59)
Попробуй так запустить на смартфоне, я давно с юнити не работал, но вроде там адаптировано под сенсор)



Реп: (694)
АнDr0uD,
так не катит.
Если использовать эмуляцию мыши - то тогда да



Реп: (694)
есть задача: нужно жать на кнопку для включения света. какая функция должна быть в js?

Сообщение отредактировал kotketa - 07.11.12, 21:52



Реп: (503)
kotketa,
Ну так дело не пойдет, если просто копипастить код, то ты ничему не научишься.
Посмотри уроки, почитай справку и 70% вопросов отапдут сразу
Ну и в качестве обучения вот простой скрипт с комментариями (писал для фонарика, но думаю подойдет):


var spotlight : GameObject; //вводим переменную источника света
var button : Texture2D ;// вводим текстуру, которая будет отображаться на кнопке

function OnGUI () {
if (GUI.Button(new Rect(Screen.width-(Screen.height/10+5), Screen.height-Screen.height/3, Screen.height/10, Screen.height/10 ), button)) //создаем кнопку с текстурой
{
spotlight.active=!spotlight.active; // код включения - выключения света
}
}


Вешать на ГГ

Сообщение отредактировал phonecrusher_nik - 11.11.12, 12:36
Причина редактирования: исправил ошибки, теперь код можно просто копировать



Реп: (694)
phonecrusher_nik,
поздновато, но спасибо :) я уже научился :)



Реп: (503)
Там кстати код оптимизированный.
Кнопка подстраивается по размеру экрана, и функция выполняется бысрее из-за "spotlight.active=!spotlight.active"



Реп: (694)
еще вопрос про анимацию. Как воспроизводить анимацию модели?



Реп: (503)
kotketa,
Ну я же говорил : справка + уроки + гугл



Реп: (694)
phonecrusher_nik,
Жаль 4game-free об этом не рассказывает.

Добавлено 07.11.2012, 23:34:

А с поисковиками не очень дружу - всегда не то, что нужно находят



Реп: (503)
kotketa,
Посмотри еще огасоду и flight dream



Реп: (694)
А, и последний вопрос: в самой юнити текстура террейна сглажена, а на андроид вся из пикселей. Как-нибудь это исправляется?

Странно, зачем в играх делают туман, если:
Fog - дает сильную нагрузку


Сообщение отредактировал kotketa - 08.11.12, 08:11



Реп: (503)
kotketa,
Не используй стандартный террейн для мобилок, а фог тормозит только мобилки (но на 3ей тегре с ним производительность не падает)


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 28.03.24, 22:27