Как стать автором
Обновить
20
0

Программист Unity3D, C#

Отправить сообщение

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

Время на прочтение72 мин
Количество просмотров3.6K

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

Добро пожаловать в мир Editor Extensions
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

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

Время на прочтение19 мин
Количество просмотров3.7K

Введение


Здравствуйте уважаемые читатели, в сегодняшней статье я хотел бы осветить тему архитектуры ядра визуального редактора логики для Unity3d. Это вторая часть из серии. Предыдущую вы можете прочитать здесь. Итак, о чем пойдет речь? В основе визуального редактора лежит базовое ядро, которое позволяет запускать, загружать и хранить данные логики. В свою очередь ядро использует, о чем было сказано в предыдущей статье, ScriptableObject, как базовый класс для работы с компонентами логики. Рассмотрим подробнее все эти аспекты.

Статьи в серии:

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

Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

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

Время на прочтение15 мин
Количество просмотров25K

Введение


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

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

Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии9

Просто о внутренних и внешних настройках для приложения в Unity3D

Время на прочтение15 мин
Количество просмотров8.3K

Введение


Здравствуйте уважаемые читатели, в сегодняшней статье хотелось бы поговорить о настройках и конфигурировании игровых приложений, создаваемых в среде Unity3d.

По традиции начну с предыстории. За время работы в игровой индустрии я разрабатывал различные проекты, с разной сложностью и побывал и в лагере гейм-дизайна, и в лагере программистов (где нахожусь и по сей день). Ни для кого не секрет, что любое приложение требует большого числа различных конфигурационных данных и настроек. В классическом, относительно Unity3d виде, такие настройки выносятся в видимую часть инспектора, где вводятся какие-то цифры и т.п. Я думаю, что говорить об удобстве такого подхода не стоит, это даже если исключить, факт, того, что на время настройки, сцена, в которой находится MonoBehaviour класс блокируется для изменений другими разработчиками. Поэтому после череды разного рода мытарств в прошлом, я решил, написать что-то простое и эффективное, что облегчит всем жизнь и упростит работу с такими данными, чем и хочу поделиться с вами.

Примечание: весь описанный ниже код применим к версии Unity 2018.3+ и использует компилятор Roslyn (версия языка C# 7+).
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии5

Работа с внешними ресурсами в Unity3D

Время на прочтение19 мин
Количество просмотров62K

Введение


Здравствуйте уважаемые читатели, сегодня речь пойдет о работе с внешними ресурсами в среде Unity 3d.

По традиции, для начала определимся, что это и зачем нам это надо. Итак, что же такое эти внешние ресурсы. В рамках разработки игр, такими ресурсами может быть все, что требуется для функционирования приложения и не должно храниться в конечном билде проекта. Внешние ресурсы могут находится как на жестком диска компьютера пользователя, так и на внешнем веб-сервере. В общем случае такие ресурсы — это любой файл или набор данных, который мы загружаем в наше, уже запущенное приложение. Если говорить в рамках Unity 3d, то ими могут быть:

  • Текстовый файл
  • Файл текстуры
  • Аудио файл
  • Байт-массив
  • AssetBundle (архив с ассетами проекта Unity 3d)

Ниже, мы рассмотрим подробнее встроенные механизмы работы с этими ресурсами, которые присутствуют в Unity 3d, а также напишем простые менеджеры для взаимодействия с веб-сервером и загрузки ресурсов в приложение.

Примечание: далее в статье используется код с использованием C# 7+ и рассчитан на компилятор Roslyn используемый в Unity3d в версиях 2018.3+.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии7

Локализация на основе ScriptableObject для Unity3D

Время на прочтение12 мин
Количество просмотров7.3K

Введение


Приветствую Вас, уважаемые читатели. В данной статье пойдет речь о создании системы локализации приложений, созданных в среде Unity3D, в основе которой лежит использование класса ScriptableObject, что позволяет локализовать не только текст, но и звуки и изображения, а также загружать такие данные извне.
Всего голосов 7: ↑5 и ↓2+3
Комментарии2

Простой менеджер ассинхронных задач для Unity3D

Время на прочтение7 мин
Количество просмотров18K

Введение


Приветствую Вас, уважаемые читатели. В данной статье пойдет речь о реализации простого менеджера асинхронно выполняемых задач для среди разработки Unity3d. Данный менеджер использует в своей основе так называемые Coroutine, которые присутствует в движке.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии22

Система событий и откликов или задатки Visual Scripting для Unity3D

Время на прочтение10 мин
Количество просмотров12K

Введение


В прошлой моей статье были приведены способы обеспечения “мягкой” связи между компонентами игровой логики, основанные на уведомлениях и подписки на них. В общем смысле подобные уведомления можно посылать на любое, какое нам захочется, действие или событие, возникающее в работе компонента: от изменения переменной, до более сложных вещей. Однако зачастую определенные события требуют от нас выполнить ряд действий, которые нецелесообразно делегировать. Самым простым примером является звуковое оформление — в компоненте возникло событие, которое требует звукового сопровождения. В простейшем варианте мы вызовем функцию AudioSource.Play(), в чуть более сложном, функцию обертки над звуковой системой. В принципе ничего страшного в этом нет, если проект небольшой и в команде мало людей, которые совмещают в себе множество ролей, но если это проект крупный, где есть несколько программистов и саунд-дизайнер, то, в частности, настройка звуков превратится для программиста в кошмар. Не секрет же, что мы стараемся абстрагироваться от контента и поменьше с ним работать в плане настройки, ибо правильнее, если этим будут заниматься ответственные специалисты, а не мы.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии2

Система сообщений или “мягкая связь” между компонентами для Unity3D

Время на прочтение13 мин
Количество просмотров34K

Введение


В данной статье будут затронуты темы, связанные с реализацией возможности “мягкой связи” компонентов игровой логики на основе системы сообщений при разработке игр на Unity3D.

Ни для кого не секрет, что в подавляющем большинстве случаев средств, которые предоставляет движок в базовом виде, недостаточно для полноценной реализации систем обмена данными между компонентами игры. В самом примитивном варианте, с которого все начинают, мы получаем информацию через экземпляр объекта. Получить этот экземпляр можно разными способами от ссылки на объект сцены, до функций Find. Это не удобно, делает код не гибким и заставляет программиста предусматривать множество нестандартных поведений логики: от “объект исчез из сцены”, до “объект не активен”. Помимо прочего может страдать и скорость работы написанного кода.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии26

Информация

В рейтинге
Не участвует
Откуда
Воронеж, Воронежская обл., Россия
Зарегистрирован
Активность

Специализация

Game Developer
Lead
C#
Object-oriented design
C++
Software development
Game Development
Unity3d
Visual Studio
Git
OOP