#8 Быстрая и простая архитектура проекта в Unity для новичков
ฝัง
- เผยแพร่เมื่อ 17 มิ.ย. 2023
- Извините за качество записи, разберусь с этим.
В этом ролике мы разберем БАЗОВУЮ архитектуру для небольшого проекта с которой вам будет удобно работать. Это идеальный баланс между скоростью, расширяемостью и простотой.
Скинуться на геймджем: boosty.to/michaelgamedirector
Проверенный ассет для сейвов: assetstore.unity.com/packages...
➡ Telegram:t.me/game_director
➡ Группа MYINDIE в ВК: myindieru
Вот он, человек со светлой темой в VisualStudio)
Да это удобно когда компьютер стоит рядом с окном, иначе днём ничего не видно.
Я новый подписчик, нравится твоя подача и хотел бы видеть больше таких тем, как в этом ролике, ибо она очень интересная)
Спасибо!)
Дерзкий мужик!!! Научите нас пожалуйста делать игры с нуля до суперпупер профи!!!
"Это не человек, это ангел!"
Благодарю!
Спасибо. давай ещё. Ждём следующий видос
прикольно что оказывается все рано или поздно приходят примерно к одним и тем же решениям)
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Спасибо)
Какой душевный мужик🙂
Моё почтение автору канала!
А в какой момент Bootstrap переключается на следующую сцену? Имею ввиду что на сцене создается множество менеджеров, как отследить что все менеджеры создались и можено загружать следующую сцену?
если сцена полностью загружена, то все префабы что были на ней в редакторе загрузились, иначе сцена не появится. Но несколько кадров все таки нужно оставить чтобы Unity точно успел все Awake и Start выполнить. Я не парюсь и ставлю в этой сцене 2 секунды до след. сцены. Но в более сложных играх где прогружается много ресурсов лучше контролировать это.
спасибо! классный контент!
Приветствую, Михаил! Ты сказал что игра на Стиме! Как там с монетизацией? Я имею ввиду если находишься в России, с монетизацией, переводами дохода со Стима на счёт в руб., проблем нет?
Привет, чтобы получать доход со Стима нужно создать карту где-то заграницей, насколько я знаю можно сделать её удалённо, никаких ограничений к россиянам кроме банковских у стима нет.
@@GameDirectorMichael Благодарю за ответ! Формат видео зачёт)
Привет, вопрос к открывающей сцене, она подгружает большинство систем и билд прекрасно работает. А как быть на этапе разработки, например, проверить сцену, ты не сможешь этого сделать, так как не все системы будут инициализированы. Сам новичок, и пришел к такому решению:
#if UNITY_EDITOR
[RuntimeInitializeOnLoadMethod]
#endif
private static void InitializeData()
{
}
Хорошее это решение или нет?
Хороший кстати вопрос. Я обычно создаю еще префаб который будет загружать все элементы и кидаю его на сцену где мне нужна проверка. Так как это касается только Эдитора, то тут любое самое простое решение подойдет.
@@GameDirectorMichael Спасибо
четко и по факту говоришь,продолжай делать контент
Лайк поставил авансом перед просмотром. :) Не разочаровался! Спасибо! :)
Опа! Я спалил локализацию))) Было бы интересно посмотреть как делать локализацию игры хотя бы на два языка!)))
Ааааа.... Хочу вторую часть. Плиз. Очень очень очень надо
Извини, были важные дела, на этой неделе запишу
Добрый день, гений ютуб шортсов))) Какой ассет использовать для локализации?
Simple localization with Google Sheets
настоящий клад для меня !
А для простых игр для сохранения лучше использовать PlayerPrefs, или тот ассет?
Без разницы, если сохранять только цифры то достаточно player prefs
Я делал один класс SaveManager и во всех играх использую его. Делаешь в этом классе 3 метода Load, Save, ClearData и еще один класс пишешь в скрипте в этом куда будешь все сохранять SaveContainer и сверху пишешь модификатор [Serialize]. В контейнере делаешь что будешь сохранять допустим int a, и в SaveManager int a, в методе Save просто их приравниваешь a=a, затем делаешь класс Singlton и сохраняешь из любого места программы
Привет, спасибо за контент. Скажи, а как трудн осейчас найти работу джуну юнити?
Всё сильно зависит от того, где и как ты будешь искать. В мире найти не очень сложно, со знанием английского. В России честно говоря не знаю, всё меняется каждый день.
А можно Kingdom Come включить на послушать?
Хороший видос, прикольная подача! От книг хуже не будет точно. Глядишь, человеку больше понравиться программировать. Вот в лавке разработчика без базовых знаний программирования вообще ловить нечего)
Скорее всего будет лучше от книг, но мне кажется до книг нужно дойти, сначала нужно приобрести интерес, а потом уже его развивать с помощью книг
@@GameDirectorMichael Вот тут согласен на 100%. Некоторые книги могут убить желание начинать что-то делать практически с первой страницы))) Я про Рихтера например)
имбаа видос
Привет. Наткнулся на твой канал, прикольная подача, интересно рассказываешь)
Хотел сказать по поводу реализации синглтона: instance нужно делать обязательно свойством с приватным сеттером.
На уровне новичков, которые в одиночку пилят свою игру это не повлияет, но в среднем проекте с командой хотя бы человек в 5-6 (не говорю уже о чём-то большем) всегда найдётся умник, который захочет перезаписать instance в другой части программы и всё сломается. Особенно руководствуясь принципом "нужно срочно, потом подрефакторим". Проверено на практике.
Ну и как по мне паттерны проектирования для новичков рассказывать - не очень хорошо. Многие новички не понимают разницы между классом и экземпляром класса. А им это на практике применить нужно... Так что отвечая на вопрос есть ли что-то проще синглтона? Да, есть))
Да, полностью согласен с синглтоном. По поводу простоты, тут мне субъективно кажется он очень простым для понимания, даже проще чем наследование например.
Don't destroy on load можно внутри if написать.
привет, подписался, нужно больше про архитектуру приложения, очень надоела путаница в куче файлов связных друг с другом не пойми как
уф, мужик)) оочеень странно, но может и полезно) я просто программист по профессии) смотрю и плачу) вообще, может и подходит для кликеров такое, но запутаться всё равно местами можно будет очень больно после этого...
Если есть примеры более простой реализации чтобы игра могла работать и при этом разработчик понимал что где у него, то я действительно рад буду о них узнать))
Я ждал что жэ ето такое XD
0:21 как песня называется?
Чтоб я знал, что то с библиотек бесплатных
Большие дяди не разрешают в script execution order лезть)
Лучше точку входа сделать единую где иницилизировать один сервис локатор и в него положить все фичи)
Да поэтому я и сказал что лучше его не трогать :) но в целом это не так страшно как все пугают. Просто если будут ошибки их сложно будет отследить
Все хорошо, только вот код плохо видно, даже в качестве 1440
Постараюсь более чётче делать
Мотнул в случайное время, увидел Singleton без объявления его минусов, изменения Script Execution ордер и вышел с видео. С такими подходами вы далеко не уедите. Изучите DI/IOC. Поставьте себе extenject, а лучше VСontainer чисто для DI и офигейте от того, как у вас легко всё инициализируется по порядку, а скрипты не ломаться от нулрефов.
Хорошо что ты вышел, потому что видео как и канал как раз о том что все что ты бы написал просто бессмысленно использовать для инди проектов. Больше времени тратишь на разбор этого всего.
Ммммм антипаттерн🥲 композит рут один из лучших архитектурных решений.
Нету такого понятия Антипаттерн, это придумано какими-то снобами с комплексами, поэтому не рекомендую это слово использовать 😸
Я, как новичок, ответственно заявляю, что далеко не глупый. Но вот вообще нет тех объяснений, что хотелось бы получить. Очень тяжело к усвоению. И самое печальное то, что сильно лучше тоже найти ничего не могу.
Напиши пожалуйста подробнее, чего именно тебе не хватило
Так я и не понял как пользоваться этим синглтоном. Ссылки на объекты как я к нему покинуть не могу, ну и зачем тогда он вообще нужен?
Почему ты не можешь прокинуть ссылки в Singleton? Создавай любые Public или защищенный поля и обращайся к ним
А нужен для того чтобы структурировать, и написать несколько менеджеров каждой из которых будет отвечать за свое.
@@GameDirectorMichael да, разобрался уже. Спасибо
1 файл - 1 класс, или в юнити по другому и в 1 файл пихают кучу классов?
В идеале да
Скинхед от мира программистов :)
Мастер, а ты крут.
чтобы пользоваться чензжектом не нужно читать книги десятки лет и выгорать
это база
Привіт, всі хвалять твою подачу, з ними згоден подаєш прикольно, надіюсь не закинеш цю справу, ооо і ще, було б класно якби ти хоча б в коментах залишав пакети які ти юзав, думаю комусь буде інтересно
извините , почему при билде игры на web Gl выскакивают 11 ошибок
Честно говоря сам ещё только начинаю делать билды под WebGL
А есть вообще такое место в интернете где програмисты скидывают какието свои наработки, хвалятся какие они молодцы, хвастаются кодом, и т.д.?
Привет! Ты про игры или конкретно про программирование? Если про программирование - это это Гитхаб
0:54 ладно(
А почему мобильные проекты фигня? В Steam размещать игры выгоднее?
Я думаю что инди разработчику в стим залететь больше шансов. Хотя возможно больше в Web :)
Ролик только для новичков, если автор говорит про паттерн singleton должен предупреждать, что его использование дурной тон в более серьезных программистских кругах (почему думаю писать не надо, много информации в интернете). Архитектурой тут не пахнет. Используйте DI и будет вам счастье.
Синглтон топ, если игру делает меньше трех человек.
DI не везде нужен. В маленьких проектах его вполне себе можно заменить сервис -локатором. А Синглтон плох тем, что его пихают везде из-за отсутствия опыта и набитых шишек, это такой же инструмент как и всё остальное.
Братан ты конечно молодец, но все твои ролики все равно ооочень сложны для новичков, я вот не знаю что такое инстанс, синглтоны и остальные всякие сложные штуки, тебе бы запистаь полный курс по юнити от самого начало до конца на несколько часов как на канале у сакутина по c#, потому что на ру ютубе такого нет и вся инфа очень разбросана и устарела. И я вангую у тебя будет сотни тысяч просмотров и куча донатов на бусти
Так Синглтон это самая простая штука, проще уже просто нечего придумать, видимо нужно лучше мне объяснять :)
Instance - это просто статическое поле, ссылающееся на объект. Можно назвать его как-то по-другому, хоть HeyYouComeHereNow 😄 просто сложилась такая традиция при создании синглтонов называть это поле "инстансом".
Синглтон - это простейший паттерн объектно-ориентированного программирования. Он реализуется на любом ООП-языке и применяется далеко не только в геймдеве (как и любой другой паттерн).
Все эти темы не имеют прямого отношения к Unity, - это такая универсальная база, которую нужно знать, чтобы мочь накодить хоть что-то мало-мальски серьезное. Вне зависимости от того, каким языком программирования ты пользуешься и какой отраслью программирования занимаешься.
Блин реально было интересно это сингтон или что-то новое. Могу сказать от себя это действительно популярный подход к архитектуре в Unity. Уже говорит о том что автор может чему-то научить новичков.
Di лучше чем Singleton)
Возможно но опять же это сложнее, первую игру лучше делать без этого
Скоро написание какого-то кода, будет называться архитектурой - карандаш в руки взял, и уже чувствуешь, как становишься архитектором
!хороший же код, !будем делать так же
@@kellerkey делай, благословляю
Синглтоны то что нужно для старта новичков, и в том чтобы быть новичком нет ничего плохого,
DontDestroyOnLoad не переносит объект из сцены в сцену,а копирует его
Очень интересно но ничего не понятно. Было бы круто если бы ты показал это на практике по этапно. А не на готовом проекте, хаотично открывая и дергая туда-сюда эти скрипты. Получается каша а не урок. Такое впечатление, что ты просто хочешь показать какой ты хороший программист и похвастаться. Точно не для новечков.
я точно не хороший программист, но намеренно) я пока разбираюсь как подавать что бы было максимально понятно, спасибо за отзыв.
2:17 Асуждаю! Мобильные проекты тоже бывают норм... тем более они приносят заработок в разы больше чем любые другие платформы! Что уже говорит само за себя, а именно что эти ваши стимы и епики фигня!)
Естественно если делать заработок то можно сделать что угодно, и лучше даже не игры)) среди мобильных игр тоже есть свои шедевры, но в среднем это просто помойка, извините, не могу по-другому выразиться глядя на какой-нибудь Google play.
@@GameDirectorMichael Не я не спорю что там много мусора. Но разработчики тоже вроде как стараются.
как же много воды...
Я называю это развлекательный контент 😉
Ну если ты гейм дизайнер- не учи людей программировать. Учиться не должно быть простым. Учиться всегда труд, Юнити коммунити только начало выползать с этого дна, а эти видосы только тянут новых разработчиков обратно в эту лужу
Я не согласен с этим. Порог в хода у программирования падает с каждым днем, не нужно придумывать себе сложностей. Для сложностей есть другие каналы, можешь смотреть их)
слышу синглтон, выключаю ролик и всем советую
Детский сад
а чё класс бы не сделать статичным?
Я там вроде упоминал, тогда его не видно в инспекторе и сложнее понять что где, а так все очевидно, для новичка это важно.