От Junior к Senior Unity разработчику. 10 советов по программированию

  Переглядів 37,596

Роман Сакутин

Роман Сакутин

День тому

Рассказал о восьми практиках их наших стандартов которые сделают ваш код только лучше.
Обучение с нуля с гарантией трудоустройства - ijunior.ru/unity-start?...
Доска - trello.com/b/aerR0R28/unity
МОЯ КНИГА - csharpbook.sakutin.ru
Я В VK - rsakutin
ЯЮниор:
Группа - holymonkey_sandbox
ЧАТ В ТЕЛЕГЕ - t.me/csharp_faggots_fan_club
Discord - / discord
INSTA - / sakutinhuytin
Что внутри:
00:00 Введение
00:24 1. Работа с тегами
01:34 2. Динамическое создание объектов
03:47 3. Загрузка сцен
05:23 4. Ivoke\StartCorutine
06:24 5. Отказ от строковых литералов
07:44 6. Название событий
10:03 7. Оформление UnityEvent
11:40 8. Секретный совет

КОМЕНТАРІ: 86
@AlexStraga
@AlexStraga 3 роки тому
Единственно оговорился что CoinCollected это вызов именно когда все уже случилось. Даже в самом тексте так
@rsakutin
@rsakutin 3 роки тому
Вот это я затраил во время записи
@anagr_
@anagr_ 3 роки тому
Только хотел написать, и вижу этот комент )) Да, написал на слайде правильно, а озвучил наоброт. Ну ничего, бывает ))
@rail3213
@rail3213 3 роки тому
@@anagr_ тоже зашел написать. А тут уже все есть)
@mikel8205
@mikel8205 3 роки тому
А я думаю, че не так... И вроде по логике наоборот.
@edenlevi8494
@edenlevi8494 2 роки тому
Dunno if anyone gives a shit but if you're stoned like me atm then you can watch all the latest series on instaflixxer. Been binge watching with my girlfriend lately :)
@govdamikhaylo4183
@govdamikhaylo4183 3 роки тому
Мои поздравления Роман видео вышло реально не плохим
@user-dm1mh5or1w
@user-dm1mh5or1w 3 роки тому
Отличный видос с позитивным настроем) За каналы полезные в конце спасибо, про Соера только знал
@seldemirov
@seldemirov 3 роки тому
Ром, поздравляю. Вышло отлично. Новый уровень видосов)
@vladyslavhorbatiuk3089
@vladyslavhorbatiuk3089 3 роки тому
Братик, вот таких информативных видео побольше. Отличное видео, спасибо!
@keraitan8472
@keraitan8472 2 роки тому
Большое спасибо за выпуск) полезен как никогда
@nelavas4651
@nelavas4651 3 роки тому
Я только что искал такие видео и мне пришло увидомление с таким же содержанием.. Повезло повезло
@glockman7574
@glockman7574 3 роки тому
Я думал в этом видео не будет хороших советов но в конце реально хороший совет который покрывает весь ролик только за последний совет поставлю лайк
@glockman7574
@glockman7574 3 роки тому
@@_mirai но как бы без подписки на хауди хо у тебя ничего не выйдет
@darkgaming8022
@darkgaming8022 3 роки тому
Опа надо сохранить, спасибо за топ ролик. Можешь снять видео по каким лучше книгам изучать c#. Было бы интересно посмотреть.
@inshii_nik
@inshii_nik 3 роки тому
Как говорит сам Роман, то книги - прошлый век, лучше учиться на практике. И я в целом согласен с ним. Только на практике ты понимаешь что тебя может ждать в будущем
@andreyas44
@andreyas44 3 роки тому
Да ну.. Лайк!!! Без токсичности, без тупых оскорблений. Я здесь хоть что то новое узнал, хоть и большинство вещей знаю, но всё же.. Спасибо хоть за что то обучающее на канале!
@tcunay1
@tcunay1 3 роки тому
Очень полезное видео!
@flexterion
@flexterion 3 роки тому
Вы Великий Человек! Вы показываете всем мастер класс
@PelipUnityDev
@PelipUnityDev 3 роки тому
За советы спасибо. Видос классный
@hafferloa7925
@hafferloa7925 3 роки тому
Красава! Лучший учитель!
@PAVLIK_CHANNEL
@PAVLIK_CHANNEL 3 роки тому
Навело на мысль тоже поделиться личным опытом: 1. Избегать ивенты юнити, которые указываются через инспектор - не надежно, использования метода не видно в Find Usages, можно удалить казалось бы не нужный метод, так как его никто не вызывает и все сломать 2. Не надеяться на Start и Awake, особенно если в них вызываются другие компоненты, которые могут быть еще не проинициализированы, я кучу раз фиксил баги с разных проектов, где что-то вызывается в Start, и триггерит nullreference. Лучше минимизировать точки входа, и все что возможно инитить в нужном месте. 3. Отказаться от корутин и инвоков, во первых производительность, во вторых их дебажить - это ад, для меня корутины - что-то на уровне goto. Еще у корутин есть серьезный минус: если объект отключен - корутина не стартанет, и вся секвенция зависнет. Любую корутину можно заменить на что-то самописное более надежное. 4. Обязательно слайзить графику, и паковать в атласы 5. Атласы не должны ссылаться на одну и ту же графику, иначе она дублируется в памяти. В бандлах - история еще плачевнее, достаточно заюзать один спрайт из атласа в бандле - и весь атлас попадет в этот бандл. Я так кучу бандлов оптимизировал как-то, в каждом из бандлов юзалось куча атласов и бандлы весили раз в 10 больше чем должны. Дублирующиеся ресурсы я либо не ложу в атлас вообще, чтобы из-за одной монетки не тянулся целый атас, либо дублирую эту монетку в каждый бандл, т.к. лучше по одному продублированному спрайту в бандле, чем по одному продублированному атласу. 6. MVC, везде MVC, монобехи - это вьюшки с интерфейсом, ничего не знающие о моделях, только отображают через методы то, что им сказали, и диспатчат ивенты. 7. Допустим если есть разные объекты, и нужны спрайты, которые меняются динамически - нужно не вешать на каждый префаб кучу спрайтов, а создать вместо этого ScriptableObject, который будет раздавать нужные спрайты по запрашиваемому типу 8. Не ленимся делать методы с отписками от ивентов и занулениями данных, у всего, что только можно, иначе когда прилетит задача на перезагрузку сцены/игры - вся статика останется висеть в памяти и после перезагрузки могут быть баги, которые потом недели две чистить придется 9. Обязательно юзать пулы объектов, в идеале написать свой контроллер пулов, чтобы не инстантиэйтить на поле кучу одинаковых объектов вызывая по 50мб аллокаций и как следствие фризы у игрока. 10. Ставим табу на GetComponent, он медленный, TryGetComponent, кстати, юзать вроде можно, но мне и без него ок 11. Платформозависимый код оборачивать не в #if UNITY_ANDROID, а лучше написать синглтон, который вернет текущую платформу из метода, и использовать его. Таким образом мы никогда не столкнемся с тем, что кто-то удалил какой-то неймспейс по рекомендации идешки, а он оказывается был нужен в платформе, скажем, андроида. Да и сам платформозависимый код в таком случае не будет игнорироваться IDEшкой, и можно будет его изменять не переключая текущую платформу
@konneuktrevor9295
@konneuktrevor9295 5 місяців тому
GetComponent и TryGetComponent ничем не отличаются. Просто второй не аллоцирует мусор в эдиторе.
@PAVLIK_CHANNEL
@PAVLIK_CHANNEL 5 місяців тому
@@konneuktrevor9295 из чего выходит, что всё таки чем-то да отличаются
@dmitrylitvinov5449
@dmitrylitvinov5449 3 роки тому
Я бы еще добавил два интересных канала, к каналам которые назвал автор ( если сакутин еще и упомянит их, будет вери вел) : 1. ukposts.info/the/6wnai488mwec_FUVfdl84w.html - Чувак реализует прикольные вещи на UNITY (очень годно и интересно лично для меня было его смотреть) 2. ukposts.info/the/MtsKfLKv7Hv6y2Cy3KckgA.html - Канал про архитектуру проектов в Unity и про паттерны
@andreyas44
@andreyas44 3 роки тому
Ребята, в топ!!! Обожаю этот канал (1. Эмеральд..), прям годные вещи говорит и шарит в языке. И интересный
@typedef55
@typedef55 3 роки тому
Лайфхак с c# ивентами и юнитёвскими ивентами оч интересный) Хотя я вообще не любли юнитёвские ивенты и везде стараюсь их избегать, чтобы максимально убрать какую-то настройку со сцены и объектов
@user-cf5ce9ht1s
@user-cf5ce9ht1s 3 роки тому
Можно ли в приложение добавлять ролик с ютюб? Бан не прилетит после публикации в плеймаркет?
@FoxyZenix
@FoxyZenix 2 роки тому
Поясните про второй пунк, пожалуйста. Прокидывать параметры и компоненты созданному объекту из того же места, откуда он создается - хорошая практика? Или же можно поступить наоборот, и в созданном объекте (в его скрипте) в Awake или Start забирать самому эти параметры? Например Заранее их добавить через [Serializefield] в "спавнер", а в Instantiate указать спавнер как родителя? А в Start или Awake вызывать transform.GetComponentInParent() и т.п. ? Заранее спасибо
@HHgg1231
@HHgg1231 3 роки тому
Зачем ты используешь в аниматоре SetFloat(string, float), нормальные пацаны используют SetFloat(int, float), предварительно сохранив ключ в public static readonly int Name = Animator.StringToHash("Name"); тоже самое и в шейдерах, все ключи с Shader.PropertyToID("Name")
@rsakutin
@rsakutin 3 роки тому
Да, хеширование хорошая практика. Надо это тоже не забыть внести в стандарт :)
@GamDevRus
@GamDevRus 2 роки тому
Роман, спасибо подписался на канал хауди хо. :) когда вы помирились с хауди?
@vadmall85
@vadmall85 3 роки тому
8:30 - Сказанное полностью противоположно тому, что написано на экране.
@user-uj8lt5kh2k
@user-uj8lt5kh2k 3 роки тому
Оговорился как мне кажется, ed - действие закончено - ing действие в процессе
@behappianstudio3576
@behappianstudio3576 3 роки тому
Я преисполнился!
@xFieRZex
@xFieRZex 2 роки тому
В тайм-кодах ошибочка: Ivoke\StartCorutine
@user-pp8vz3gw1b
@user-pp8vz3gw1b Рік тому
А для 8-го совета ты не подходишь?
@user-ql7wy4ui3s
@user-ql7wy4ui3s 3 роки тому
Ну вот это я ожидал так долго от Ромы.
@jz4887
@jz4887 3 роки тому
❤️
@JOrJO_-cw4js
@JOrJO_-cw4js 3 роки тому
Первое апреля уже прошло, Рома
@emptysoul438
@emptysoul438 3 роки тому
В 6-м пункте говорим одно, а в тексте другое) И в тексте, кажется, правильнее
@rsakutin
@rsakutin 3 роки тому
Ага
@crazymax5204
@crazymax5204 2 роки тому
Ты где раньше был?!
@user-is6xn8kt6b
@user-is6xn8kt6b 2 роки тому
Планирую написать игру на движке unity,изначально игра против компа,но развиваться игра должна в сторону онлайн один на один.скажите поддерживает ли unity такое(игра не требовательна к граф. ресурсам)
@PasterLak
@PasterLak 2 роки тому
Юнити всё поддерживает, это же игровой движок, а не редактор карт
@varan9412
@varan9412 2 роки тому
Советы хорошие, но довольно очевидные для тех кто уже имеет опыт (1-2 года). Хочется рили неочевидные моменты от разработчика с 10-ти летним стажем)
@1pampers13aby7
@1pampers13aby7 2 роки тому
Мне от тоже интересно: чем он 10 лет занимался? Болаболства много, но где игры. Именно игры, а не какой то набор 2 механик, какой то недо прототип
@kirillsviderski4739
@kirillsviderski4739 3 роки тому
по шарпу не видел никого лучше Nick Chapsas на ютубе. Рекомендую
@sergey.stafeev
@sergey.stafeev 3 роки тому
2. Если пехота шагает в Tower Defense, то не нужно постоянно создавать новые объекты, нужен пул заранее созданных объектов, и уже с ними работать (забирать из пула, помещать обратно в пул и т.д.).
@rsakutin
@rsakutin 3 роки тому
А в пуле они откуда возьмутся? :)
@eluone6733
@eluone6733 2 роки тому
Это же Jira, owo
@user-bp5qu9ie5o
@user-bp5qu9ie5o 2 роки тому
В плане уже 10 лет???
@damirmirasov3785
@damirmirasov3785 3 роки тому
Я слыхал ты женился. Желаю вам счастья.
@Qyrtix
@Qyrtix 2 роки тому
Вот это реально от профессионала, не то что от хауди
@shadowlife5331
@shadowlife5331 Рік тому
Я не программист и не смотрю на "чистоту кодеца" стараюсь писать чтобы хоть что то работало для тестов (учусь на геймдизайнера)
@murosekai
@murosekai 3 роки тому
Что за дискриминация Хауди Хо? Создаю ассоциацию по защите прав Хауди Хо
@GamDevRus
@GamDevRus 2 роки тому
да вроде наоборот, рекомендовали его канал
@I.G.R
@I.G.R 3 роки тому
_Почему _некоторые _названия _пишут с _подчеркиванием _вначале?
@user-we4dz3fj1y
@user-we4dz3fj1y 3 роки тому
поля класса с модификатором доступа private именуются _kaktoTak
@rsakutin
@rsakutin 3 роки тому
Отдельное видео про это было
@I.G.R
@I.G.R 3 роки тому
@@rsakutin скажи пожалуйста как оно называется?
@rsakutin
@rsakutin 3 роки тому
@@I.G.R как работать с полями unity best practice #1
@I.G.R
@I.G.R 3 роки тому
@@rsakutin спасибо)
@behappianstudio3576
@behappianstudio3576 3 роки тому
11:45 - Напугал!) Я уж чуть было не отписался!)
@sevenlands2354
@sevenlands2354 3 роки тому
Из всего ролика понял что нужно подписаться на Хауди-Хо и всё я уже про гейм-дев (и всего за 1 час) 😂😂😂 Не то что у Романа 11 месяцев учиться 😂
@fullboarduck5491
@fullboarduck5491 3 роки тому
Было бы круто просто C#
@gandrew8102
@gandrew8102 Рік тому
Закадровый голос обладает нелегкой формой дэбильности🌝
@antonsimkin
@antonsimkin 2 роки тому
ИВЕНТ
@GexPlayerMD
@GexPlayerMD 2 роки тому
Слово "профессионал", у меня теперь плотно ассоциируется с Хауди, и ему подобными... Печалька. 🤔
@GamDevRus
@GamDevRus 2 роки тому
это дзря
@GexPlayerMD
@GexPlayerMD 2 роки тому
@@GamDevRus Ну, не совсем зря. Он профессионал в создании бесполезных видео, которые собирают миллионы просмотров.🙂
@uso2484
@uso2484 3 роки тому
Первый?
@dreamteams
@dreamteams 3 роки тому
Yamete kudasai 🤣
@kekchannel
@kekchannel 3 роки тому
Я мб не понимаю, но почему чел делает кликбейт названия в стиле "какой говнокод у сеньора" , "суперсоветы от профессионала", "разбор плохого кода Ааа разработчика", но при этом имеет ноль успешных игр в своем портфолио?
@user-jw4nt3qm6q
@user-jw4nt3qm6q 3 роки тому
Потому что он сеньор-помидор
@rsakutin
@rsakutin 3 роки тому
Так я программист а не продюсер, у меня функция другая
@unciauncia
@unciauncia 3 роки тому
Лучший совет сменить юнити на анрил и учить С++.
@grener4959
@grener4959 3 роки тому
Зачем?
@Dadadadam999
@Dadadadam999 3 роки тому
Сменить юнити на Дефолд тогда уж.) Ну или на godo.
@grener4959
@grener4959 3 роки тому
@@Dadadadam999, зачем?
@philipinhoi8091
@philipinhoi8091 3 роки тому
Не вижу профессионала который может давать советы
@AlekseyLoykuts
@AlekseyLoykuts 3 роки тому
Не полезной инфы и уважения я ждал на этом канале, отписка !!! :D
@daniilparokonnyy7980
@daniilparokonnyy7980 3 роки тому
7. Можно тогда уже юзать UltEvents: assetstore.unity.com/packages/tools/gui/ultevents-111307
@JackFastGame
@JackFastGame Рік тому
Доводилось как-то пользоваться этим плагином, он просто напросто ебёт инкапсуляцию во все щели :)
0% Respect Moments 😥
00:27
LE FOOT EN VIDÉO
Переглядів 42 млн
Історія загиблого Назара Небожинського
00:54
Суспільне Рівне
Переглядів 865 тис.
Eurovision Song Contest 2024: First Semi-Final (Live Stream) | Malmö 2024 🇸🇪
2:23:45
Всё про корутины в Unity 3D
13:18
Emerald Powder
Переглядів 97 тис.
Избавляемся от If и Switch в коде на C#! КАК !?
14:38
Роман Сакутин
Переглядів 95 тис.
Загрузочный экран и смена сцен в Unity 3D
20:59
Emerald Powder
Переглядів 106 тис.
ООП вопросы на юнити собеседовании
14:11
Максим Крюков
Переглядів 42 тис.
Optimizing a Unity game, Part 1. Batching
4:16
Insane One - Разработка игр
Переглядів 74 тис.
Subscribe for more Coding Tips! 🔥I wish I knew this When Istarted Programming #school #software
0:34
How Neuralink Works 🧠
0:28
Zack D. Films
Переглядів 25 млн
Теперь это его телефон
0:21
Хорошие Новости
Переглядів 650 тис.
M4 iPad Pro Impressions: Well This is Awkward
12:51
Marques Brownlee
Переглядів 5 млн