Pull to refresh

Unity3D: Модификация делегата iOS приложения

Reading time15 min
Views3.8K
Думаю, многим в ходе разработке игры для iOS приходилось сталкиваться с тем, что возникает необходимость использовать тот или иной нативный функционал. Касаемо Unity3D, в данном вопросе может возникать очень много проблем: для того, чтобы внедрить какую-то фичу, приходится смотреть в сторону нативных плагинов, написанных на Objective-C. Кто-то в этот момент сразу отчаивается и забрасывает идею. Кто-то ищет готовые решения в AssetStore или на форумах, надеясь на то, что готовое решение уже существует. Если же готовых решений не существует, то самые стойкие из нас не видят другого выхода, кроме как погрузиться в пучину iOS программирования и взаимодействия Unity3D с Objective-C кодом.

Тех, кто выбирает последний путь (хотя, думаю, они и сами знают), ожидает множество проблем на этом нелегком и тернистом пути:

  • iOS — абсолютно незнакомая и обособленная экосистема, развивающаяся своим путем. Как минимум придется потратить довольно много времени, чтобы понять как можно подобраться к приложению, и где в недрах автоматически сгенерированного XCode проекта находится код взаимодействия Unity3D движка c нативной составляющей приложения.
  • Objective-C — довольно обособленный и мало на что похожий язык программирования. А когда речь заходит о взаимодействии с C++ кодом Unity3D приложения, то на сцену выходит «диалект» этого языка, под названием Objective-C++. Информации о нем совсем немного, большая ее часть древняя и архивная.
  • Сам протокол взаимодействия Unity3D с iOS приложением довольно скудно описан. Расчитывать стоит исключительно на туториалы энтузиастов в сети, которые пишут как разработать простейший нативный плагин. Мало кто при этом затрагивает более глубокие вопросы и проблемы, возникающие при потребности сделать что-то сложное.

Тех, кто хочет узнать о механизмах взаимодействия Unity3D с iOS приложением, прошу под кат.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments1

Визуальный редактор логики для Unity3d. Часть 3

Reading time72 min
Views3.7K

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

Добро пожаловать в мир Editor Extensions
Total votes 8: ↑8 and ↓0+8
Comments1

Unity3d. Начало работы, практические советы. Рецензия

Reading time9 min
Views257K
Доброго времени суток. Данная статья посвящена мультиплатформенному инструменту Unity3d. В статье рассмотрены оптимальные, по моему мнению, способы работы с движком, даны практические советы по эксплуатации и дополнительные (общие) сведения; рассмотрены перспективы развития Unity3d.

Содержание:

  • Раздел 1. Введение
    • Что такое Unity ?
    • Возможности Unity3d
    • Проблема дополнительных знаний

  • Раздел 2. Начало работы
    • Вспомогательная литература
    • На это стоит обратить внимание
      • NB!
      • Сцены
      • Отладка

    • Структурирование

  • Раздел 3. Практические советы
    • Написание скриптов
    • Видеоуроки
    • Устранение ошибок

  • Раздел 4. Завершение работы
    • Выводы
    • Публикация игры
    • *Оптимизация

  • Раздел 5. Дополнительная информация
    • Теория графики
    • Полезные ссылки
    • Мнение
      • Что хочется увидеть в будущем?


  • Источники информации


Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments37

Как я подружил Unity3D и F#

Reading time30 min
Views20K

В последнее время я стал все больше и больше интересоваться функциональным программированием, и при выборе языка предо мною пал выбор среди двух очень понравившихся мне языков — Haskell и F#.
В F# меня соблазнило то, что его можно компилировать в MSIL сборки, что обеспечивает возможность использования библиотек классов F# в других языках Microsoft .Net, а также то, что он и сам может их использовать. Ко всему прочему, я ещё и начинающий разработчик Unity3D, и мне в голову пришла мысль: если компилируется в MSIL, то может можно использовать F# скрипты в Unity? Гугление дало ответ: по-человечески нельзя. Можно создать библиотеку классов, поставить в проекте ссылки на библиотеку UnityEngine.dll, компилировать и импортировать как ассет, после чего добавлять компоненты Mono-behaviour напрямую из библиотеки, но это не слишком удобно, согласитесь. Однако, пройдя гугл, Reflection и справку по Unity, мне все таки удалось приблизить(но не повторить в точности) работу с F# скриптами внутри редактора к тому виду, в котором производится работа со скриптами на встроенных языках. Подробности — под хабракатом.


Показать подробно
Total votes 55: ↑45 and ↓10+35
Comments6

Тестирование игр в Unity3D и на эмуляторах

Reading time11 min
Views8.2K

Всем привет. Сегодня публикуем вторую часть текстовой расшифровки интенсива, который был проведен в преддверии старта курса "Game QA Engineer. С первой частью можно ознакомиться по ссылке.

Интенсив провела Надежда Чертовских — руководитель отдела QA в компании BeresnevGames и преподаватель OTUS.  

План вебинара:

Познакомиться с инструментами для тестирования мобильных игровых проектов.

Попробовать запустить игру в эмуляторе Вluestacks.

Попрактиковаться в сборе логов с мобильной игры.

Создать свое тестовое устройство в эмуляторе android studio.

Попытаться пройтись по чек-листу, который составили на первом интенсиве.

Читать далее
Total votes 11: ↑8 and ↓3+5
Comments0

Unity3d. Уроки от Unity 3D Student (B00-B03)

Reading time5 min
Views245K
Добрый день. Предлагаю свой вариант перевода уроков по Unity3d от www.unity3dstudent.com

Введение.


Данная статья представляет из себя первый набор базовых (из раздела Beginner) уроков. Уроки в основном нацелены на изучение скриптинга и использование компонентов.
Поэтому предполагается, что с основами работы в GUI Unity вы слегка знакомы. Если нет, изучите вводный раздел на этом же сайте.
Уроки достаточно ясные и короткие, так что трудностей в процессе их изучения должно возникать минимум.

PS: А хорошо это или плохо — вопрос достаточно сложный.

В некоторых местах уроков есть минимальные косметические изменения, не затрагивающие основную суть.

Перейти к урокам
Total votes 54: ↑53 and ↓1+52
Comments9

Unity3d. Уроки от Unity 3D Student (B04-B08)

Reading time7 min
Views136K
Добрый день.

Предыдущие уроки вы можете найти в соответствующем топике.

Теперь в каждом посте в скобках (в конце) будут указываться номера уроков. Буква в начале номера обозначает раздел (B-Beginner, I — Intermediate).

PS: Если вы не проходили предыдущие уроки, очень рекомендую их пройти, т.к. последующие изредка на них ссылаются.

Перейти к урокам
Total votes 28: ↑24 and ↓4+20
Comments19

Учим и учимся Unity3D в Калининграде

Reading time16 min
Views10K
Черный ящик. Таким для меня был процесс создания игр до тех пор, пока я не скачал Unity3D. Черный ящик был таинственен, притягателен и заманчив, очень хотелось попробовать, но внутри всплывали назойливые мысли: это сложно, ты не сможешь, игры делают профессионалы, нужен большой бюджет, это долго, это дорого, ты не поймешь, ты не сможешь, ты…И так далее, сами, наверное, помните, о чем я. Но все-таки были сомнения, мне казалось, что ситуация чуть проще, и об этом стало говорить все увеличивающееся количество так называемых indie – игр.

Unity School

Около трех лет назад где-то на просторах интернета я нажал на баннер, говорящий о том, что вот он, тот инструмент, который вам нужен для создания игр. Открылся сайт, который почему-то сразу понравился и заставил задержаться, а надпись «бесплатно» завладела моим вниманием окончательно. Это был сайт компании Unity Technologies, я пробежался по ссылкам и без оглядки нажал на закачку. Программа закачалась, установка прошла успешно, запуск прошел тоже без проблем и – ура! Передо мной то ли Photoshop, то ли 3D Max, да еще и программировать можно, да еще и игры… Помню, как мне говорили: «Зачем ты это делаешь, что за «пукалки», почему, для чего». Но оторваться было невозможно: элегантно, быстро, красиво, стройно можно делать игры, причем полет фантазии не ограничен, возможностей много, концепции логичны, пространство трехмерное, магазин есть. Да, и документация прекрасная, хочу отметить это достоинство компании Unity Technologies, которое, на мой взгляд, дало ей немало очков форы по сравнению с другими разработками: на сайте компании можно найти и уроки, и готовые проекты, и ответы на вопросы, руководства пользователей, справочник функций, сообщество, вопрос — ответ и т.д. Все с примерами, внятно, доступно.

Я сделал парочку игр в стол: стреляющий звездолет в стиле galaxy и простой arkanoid. Так как всю свою жизнь меня интересовала сфера образования (кстати, сферой образования я интересуюсь не только теоретически, постоянно преподаю в различных учебных заведениях длительные и краткосрочные курсы), я вдруг понял, что именно этого и не хватает в нашей области: у нас в Калининграде никак и никто сегодня не учит делать игры. Я имею в виду в школах и ВУЗ’ах. Да и в коммерческих учебных центрах тоже. Школам простительно, но вот почему в институтах и университетах до сих пор не введут такой курс?

В этой публикации я хочу поделиться с вами опытом обучения основам создания компьютерных игр с использованием Unity3D, рассказать о сложностях такого процесса, почему это надо делать, как это лучше делать и чем мы тут, в Калининграде, занимаемся в этом направлении. Далее – немного видео, фотографий, мыслей, ссылок, опыта, планов, вопросов, советов, просьб, рекомендаций. Нам очень нужно ваше мнение!
Вперед!
Total votes 41: ↑32 and ↓9+23
Comments8

Unity3d. Уроки от Unity 3D Student (B13-B16)

Reading time5 min
Views121K
Предыдущие уроки вы можете найти по следующим ссылкам:
Уроки B01-B03
Уроки B04-B08
Уроки B09-B12

PS: Так же исправленны некоторые ошибки в предыдущих уроках, большое спасибо хабравчанинам ufomesh и MikhailS.

Перейти к урокам
Total votes 14: ↑12 and ↓2+10
Comments7

Некоторый опыт разработки игры на Unity3D

Reading time6 min
Views37K
Не считаю себя опытным программистом и тем более серьезным разработчиком игр. Я человек, который увлекается программированием и у меня немного получается. Статья не претендует называться учебным материалом, или наставлением.

Скриношты для привлечения внимания:
image image

Моральная сторона вопроса

Стоит ли заниматься подобным, не имея серьезных знаний в разработке игр, моделировании, программировании? Ответа на вопрос от меня не последует, он у каждого будет свой. С уверенностью могу сказать точно — я не пожалел. Я попытаюсь кратко и четко выделить и описать узкие места с которыми я столкнулся, проложить карту по граблям.

Unity3d

Unity3d с недавних пор разрешено использовать бесплатно и на всю мощь. Я долго метался между несколькими движками, но c# оказался для меня решающим преимуществом. Кроме того, в Unity3d очень удобный способ построения пользовательского интерфейса. Для тех кто не боится Lua, также могу посоветовать Project Anarchy, или Unreal Engine 4 если не брезгуете визуальным программированием. У меня сложилось впечатление, что Unity3D прекрасно подходит для мобильной разработки. К сожалению у Unity3D слабое русскоязычное комьюнити и нередко приходится лезть на официальный qa.
Читать дальше →
Total votes 22: ↑17 and ↓5+12
Comments4

Использование OpenFeint в Unity3d

Reading time3 min
Views5.1K
OpenFeint — достаточно популярная социальная сеть для игроков. Социальная составляющая всегда важна для казуальных (да и не только) игр, ведь она добавляет интерес к игре со стороны пользователей, да и способствует распространению.
Итак, наша задача на текущий момент — встроить OpenFeint в наш проект игры на Unity3d. Итак, все по порядку.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments11

UnityCar — автомобили с физикой для Unity3D

Reading time3 min
Views50K


Игровой движок Unity3D не нуждается в особом представлении. Для тех, кто не знает, что это такое, могут посмотреть сайт unity3d.com/unity/ или поискать другие топики на хабре про этот замечательный кросс платформенный движок. Для него уже написано множество дополнений, моделей и других пакетов. Об одном из них и пойдет речь.
UnityCar — полноценный физико-реалистичный пакет симуляции автомобилей для Unity3D, который прост в использовании и реализует множество физических моделей, включая модели повреждений и разрушений.

Небольшое видео, демонстрирующее возможности пакета:

Читать дальше →
Total votes 61: ↑54 and ↓7+47
Comments40

В четвертой версии Unity3D появится поддержка GNU\Linux

Reading time3 min
Views10K
Прочитав эту статью, был приятно удивлен новостью о том, что в четвертой версии Unity3D заявлена поддержка GNU\Linux!

  • Система анимации «Mecanim» (Mecanim animation system)
  • Поддержка DirectX 11 (DirectX 11 support)
  • Сборка приложений под Linux (Linux deployment)

Подробнее
Total votes 55: ↑50 and ↓5+45
Comments20

Визуальный редактор логики для Unity3d. Часть 1

Reading time15 min
Views25K

Введение


Здравствуйте уважаемые читатели, в сегодняшней статье я хотел бы остановиться на таком феномене в разработке приложений на Unity3d, как визуальная разработка или если бы точнее, разработка с применением визуального представления кода и логики. И, прежде чем продолжить хочу сразу уточнить, речь не идет о визуальном программировании, от слова “совсем”, никаких Blueprint вариаций в мире Unity и никаких генераций C# кода. Так что же тогда подразумевается под визуальным редактором логики? Если вам интересен ответ на данный вопрос добро пожаловать под кат.

Статьи в серии:
Визуальный редактор логики для Unity3d. Часть 2
Визуальный редактор логики для Unity3d. Часть 3

Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments9

Неигровое применение Unity3D и Oculus Rift

Reading time7 min
Views54K
На Хабре очень мало статей, посвящённых неигровым применениям Unity3D. Мы решили исправить эту досадную ситуацию и рассказать о том, как мы делали (и продолжаем делать) онлайн-планировщик квартир (да-да, очередной!) с рендерингом качественных изображений на серверной стороне и интеграцией с Oculus Rift.

По нашим прикидкам, материала набирается на добрый десяток статей, поэтому мы немного расскажем о самом проекте, а вы выбирайте, какую тему раскрыть подробнее.

Disclaimer: все изображения в статье — либо скриншоты из браузера, либо автоматически сгенерированы на сервере, и не имеют никакой пре- или пост-обработки.



Много картинок, видео и опрос
Total votes 52: ↑50 and ↓2+48
Comments41

Агрегатор событий для Unity3d (Event Aggregator)

Reading time7 min
Views9K
Идея написать свой расширенный агрегатор событий для Unity3d назрела давно. Прочитав несколько статей на эту тему, я понял что нет достаточно «правильного» (в рамках Unity3d) и нужного для меня агрегатора, все решения урезаны и не обладают нужным функционалом. 

Необходимый функционал:


  1. Любой класс может подписаться на любое событие (часто агрегаторы в юнити делают подписчиками конкретные Gameobject)
  2. Должна быть исключена возможность двойной подписки конкретного экземпляра, на конкретное событие (в стандартных средствах за этим нужно следить самому)
  3. Должен быть функционал как ручной отписки, так и автоматической, в случае удаления экземпляра/отключения монобеха (хочется подписаться и не париться что подписчик вдруг откинет копытца)
  4. события должны уметь перекидывать данные/ссылки любой сложности (хочется в одну строку подписаться и получить весь комплект данных без заморочек)
Читать далее
Total votes 18: ↑13 and ↓5+8
Comments6

Unity3D 3.х Введение в Surface Shaders

Reading time4 min
Views32K
Рано или поздно возможностей стандартных шейдеров вам станет не хватать, и тогда вам на помощь придут Surface Shaders. По сути это надстройка над обычными шейдерами, которая позволяет вам писать более понятный и компактный код.
В Surface Shader вы можете управлять освещением, тенями, путями отрисовки (rendering path) используя все тот же Cg / HLSL код.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments3

Порядок событий в Unity3D

Reading time5 min
Views151K
Доброго времени суток.
Не так давно заинтересовался этим движком. Благо, русских материалов на эту тему достаточно много, в том числе и на хабре.
Однако, я нигде не видел описание (на русском языке) порядка возникновения различных событий в создаваемых играх, а это один из факторов оптимального размещения скриптов в тех или иных функциях.
Поэтому решил перевести раздел Execution Order of Event Functions из англоязычной справки Unity3D.
Надеюсь, из этого выйдет что-нибудь путнее. Кто заинтересовался — добро пожаловать под кат =)
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments11
1
23 ...