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



Реп: (207)
Артегор @ 05.09.2014, 11:19 *
жаль NGUI , их время прошло ))

Мне жаль тех, кто так думает. Встроенный новый гуй даже близко не валялся с текущим нгуем и приблизительно равняется глюкозавру ngui 3.0.x, когда 3 ветка только была начата.
Примеры:
*) Сортировка только по порядку в иерархии объектов в сцене. Т.е. если хотите алфавитную сортировку, то можете забыть о правильном порядке виджетов. Кто такое придумал - тому гвоздь надо в башку вбить. В нгуе отдельное поле для виджетов и контейнеров.
*) Батчинг только в пределах атласа, тут все правильно. Неправильно то, что его нечем собирать, атласмейкер вроде как только для прошки. Да, можно собирать руками в каком-нибудь внешнем редакторе и потом руками или в полуавтоматическом режиме размечать в юнити. Очень удобно, особенно при частой пересборке и апдейте спрайтов. Вообще не сравнимо с нгуем.
*) Нет привязки к четким размерам экрана, хочешь - привязывай внешнюю камеру и в ней руками настраивай. В новом нгуе появилась привязка не только к высоте, но и к ширине.
*) Выравнивание текста по ширине.
*) Мертвый режим редактирования виджета - отдельная кнопка на главной панели. Почему не взять режим из нгуя и кучи других ассетов в юнисторе - я не понимать.
*) Вся полезная обвязка вокруг гуя - где? Рендер нгуя - это только половина, вторая половина - это хелперы и специальное поведение для виджетов.
*) Локализация. Хотя это относится к обвязке, но достаточно хороший пример.
Вывод - новый не вышедший гуй уже проигрывает год разработки нгую, все в стиле юнитеков.

Сообщение отредактировал Leopotam - 05.09.14, 11:36



Реп: (104)
* Leopotam,
Именно что ещё не вышедший и
phonecrusher_nik @ 05.09.2014, 01:50 *
Говрят там потом намного больше функций будет)

странно, что опытный программист сравнивает систему, которая уже отточена, и, которую ещё толком не выпустили, на равных О_о



Реп: (207)
Артегор @ 05.09.2014, 12:43 *
странно, что опытный программист сравнивает систему, которая уже отточена, и, которую ещё толком не выпустили, на равных О_о

Не я ведь начал жалеть тех, кто пишет / юзает нгуй. :)

Я привел примеры архитектурных косяков, которые не будут исправлены в принципе - сортировка, сборка в атлас и режим редактирования. Остальное - на уровне нгуя годичной давности. Учитывая то, что до конца года они должны выпустить 4.6, а нгуй точно так же продолжит свое развитие за счет предложений и патчей от коммунити, то разрыв в год таковым и останется, либо увеличится еще.

Тут еще какая штука - в нгуе можно что-то подхачить под себя или посмотреть логику как оно работает, чтобы интегрироваться корректно. С закрытым встроенным гуем такого не сделать.

З.Ы. Если кто не в курсе, то автор нгуя работал год на юнитеков (в 2013 году), фактически подарив им свои наработки. Пока работал на них - нгуй почти не развивался, после ухода - выкатывал апдейты раз в неделю минимум.

Сообщение отредактировал Leopotam - 05.09.14, 12:02



Реп: (33)
Всем привет. Подскажите, каким способом лучше реализовать смену языка в игре?(алгоритм и методы)



Реп: (207)
* gul.jenya,
скачать нгуй 2.7 (вроде стал бесплатным) и посмотреть там локализацию (Localization, UILocalize).



Реп: (13)
тык... делал я как то на андроиде пазззл ..недоделал.
и тут решил на юнити сделать.
сделал чуть чуть))
но вот какая штука - на андроиде чтоб сделать 2 стакана (на 2х игроков) , или хоть 8 - я просто создаю 8 экземпляров класса GameBoard, делая List<GameBoard>(), и выкладываю их как хочу - например, стакан первого игрока - внизу ,а второго вверху и кверх ногами чтоб играли оба. если их 8 и я хочу сделать игру по сети - один делаю крупно и 7 мелко...

Здесь то как , на Юнити это сделать? Чёто не могу сообразить..

Тут ведь этот стакан не объеденишь в один класс и не создашь экземпляры? Или как, в префаб закатывать? а как их кверх ногами друг к другу сделать чтоб гравитация работала нормально? 2 камеры для этого ставить?)

Не могу допереть)

Сообщение отредактировал vladdrummer - 05.09.14, 14:26



Реп: (207)
* vladdrummer,
можна посмотреть туторы по юнити, чтобы понять компонентную модель. Суть такова: в иерархии сцены есть объекты - GameObject (GO). По сути это тупо контейнеры для компонентов. Все есть компонент - холдер ориентации объекта, холдер для меша, рендер меша, пользовательские компоненты - все это считается равнозначными блоками, которые можно вешать на GO.
Префаб есть по сути настроенный GO и сохраненный в проект целиком, чтобы его можно было потом инстанцировать через код как атомарный объект.
По поводу кода - можно писать на чистых классах, а взаимодействие с юнити производить в наследниках MonoBehaviour, но проще для начинающего не гемороиться и использовать только код-наследник MonoBehaviour. Тут тоже все просто - наследуешься, твой класс становится полноценным строительным блоком-компонентом, который можно накидывать визуально в редакторе, либо использовать через код в другом месте. Это все есть в туторах в шапке темы.

Сообщение отредактировал Leopotam - 05.09.14, 16:00
Причина редактирования: олбанске офф



Реп: (0)
что делать? из-за этой ошибки ничего не работает

Прикрепленные изображения
Прикрепленное изображение



Реп: (207)
chak-noris @ 06.09.2014, 18:36 *
что делать?

Скопировать текст ошибки в гугло-переводчик, там все написано что нужно делать.



Реп: (348)
А Юнька вообще понимает процедурные материалы на моделях?
И прозрачность надо шейдером внутри Юньки делать? Просто сделал прозрачный (стекло) материал, а в Юне прозрачности нет. Что процедурной картой, что просто стандартным материалом.. С блеском та же фигня(
А то блин понаделал моделек, загнал в Юню поглядеть как вышло и погрустнел от серости.. Прозрачности нет, блеска нет, карты отражений нет, бампа нет, вообще все сплошняком плоское.. Аж мля интерес пропал(

Теперь другое..модель затекстурена просто одной текстурой. Экспортирую всё норм. Открываю в максе текстура присутствует. В юньке нет..
Зато с прозрачностью разобрался..прогресс ёпт..

за что минус то??

Сообщение отредактировал mastersmit - 06.09.14, 21:22



Реп: (104)
* mastersmit,
прозрачность настраивается стандартными шейдерами, блеск так же (но уже не стандартными.. может в про есть, а во free сам пиши как хочешь )), при экспорте модели иногда теряется текстура , либо вешал в редакторе не через карту текстур либо ещё что, попробуй ручками- найди текстуру и кинь на модель , обычно помогает.
Минус возможно за незнание выше описанного, либо за какой-никакой мат . А может просто настроение у кого-то плохое было. Удачи )

Сообщение отредактировал Артегор - 06.09.14, 21:50



Реп: (348)
* Артегор,
С прозрачностью разобрался) с блеском почти, во всяком случае уже поблескивает. С текстурами тоже почти, основная текстура висит на модели (при экспорте поставил галку Embed Media), всё норм. Но вот с картой отражения и бампом не разобрался. При импорте в Юньке они висят в папке "название_модели.fbm", для карты отражения поменял тип на reflection. Только чет не соображу как нанести на модель.. То же самое с бампом..

Но вот с картой отражения и бампом не разобрался.

Разобрался) Водичка клёвая получилась)

Сообщение отредактировал mastersmit - 06.09.14, 22:40



Реп: (212)
У меня теперь стоит NGUI v1.6 если я обновлю до последней версии, то мне GUI придется переделывать по новой или все будет работать так же как и теперь?



Реп: (17)
люди , спасайте , что делать?
делал как то я карту , полностью заполнил её и она у меня показывала на всю карту 10 дк и сохранение батчингом 568 .
в итоге у меня какая то хрень с юнькой произошла и тот проект слетел и больше не запускался (
решил я переделать карту, сделал половину и решил проверить сколько показывает , в итоге у меня получается на всю карту 650 дк и сохранение батчингом 320 .
что делать?
почему у меня так мало сохранения батчингом и так много дк?
почему они у меня не сохраняються???
даже не знаю что поделать((



Реп: (22)
Подскажите пожалуйста малозатратную железную дорогу, её нужно будет очень много.



Реп: (17)
* merkyt,
могу сделать тебе рельсы , частями , что бы потом собирал как конструктор)



Реп: (0)
как прозрачность реализовать ? никто не подскажет ? все текстура начинает прозрачной становиться...как то странно, раньше не было(((

Добавлено 07.09.2014, 20:30:

Ребят, извините, разобрался))) то ли альфа-канал неправильно определялся, то ли еще чего... короче все заработало так, как должно работать))))



Реп: (13)
Ребятки.
делать автоматическую определялку качества графики - сложно ?)
как понять что устройство не тянет? Я предусмотрел у себя объекты с тегом HighQuality которые надо грохнуть если устройство не потянет. Но как понять что оно не потянет?
и как использовать различного качества текстуры ?
класс QualitySettings юзать? там по моему можно это из кода менять?



Реп: (503)
* vladdrummer,
ищешь кучу мобилок/тестеров с мобилками с разным железом, опытным путем определяешь на каких смартах с какими настройками как идет, а потом по видеоускорителю (можно получить через инфу о системе и железе) выбираешь уровень графики)



Реп: (104)
* vladdrummer,
оно те надо ?)Делаешь средний уровень, а потом настройки с выбором качества. И тебе гемора меньше, и юзер думает "офигеть как кртуто! Настроечки, потыкать можно, да я бог вообще!!!"
=D


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

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

Сейчас: 29.03.24, 01:40