C# Интерфейсы простым языком с примерами в Unity! Уроки по C# (ч.8)

  Рет қаралды 19,778

Яковлев Илья - IT и игры

Яковлев Илья - IT и игры

Күн бұрын

Пікірлер: 93
@rsakutin
@rsakutin 3 жыл бұрын
Прикольно
@deleted1219
@deleted1219 4 ай бұрын
ну наконец-то хоть кто-то нормально объяснил суть интерфейса блэээээээттээттээтэтэттэтэ , спасибо тебе огромное !!!!!!!!!!!!!
@nostro92
@nostro92 3 жыл бұрын
Доброго времени суток. Хочу выразить свою благодарность. У вас качественный материал, хорошо подан, вкрапления мемчиков не дают заскучать. Просьба не забрасывать канал)
@bogdan9423
@bogdan9423 Жыл бұрын
Поддерживаю)
@slash7076
@slash7076 3 жыл бұрын
Эх, жаль что такой хороший канал так мало людей смотрит.
@МаксАрыкбаев
@МаксАрыкбаев 3 жыл бұрын
Какие люди? Ты глючишь? Тут только роботы)
@HINCO38
@HINCO38 3 жыл бұрын
Время ещё придет)
@super207room
@super207room 3 жыл бұрын
Соглы)
@Hellscaner
@Hellscaner 2 жыл бұрын
Я думаю может надо видео как-то более оригинально называть?
@WeLoveCreatingGames
@WeLoveCreatingGames 2 жыл бұрын
@@Hellscaner думаю тут ещё дело в частоте выпусков) Но у этого парня всё будет,но со временем, когда канал обрастёт материалом) Я был бы рад даже 2-5х минутным роликам,которые бы по нотации движка раскрывал,как и где применять функции юнити. Так как порой читаю и смотрю пример кода который сам мануал юнити дает и нифига не понятно,точнее понятно 30/70 информации,а смотришь ютубера он делает по другому,а работает так как ты представлял читая этот мануал...вообщем хочется расшифровку мануала для чайников)))
@seeyolater
@seeyolater 2 жыл бұрын
Канал просто жемчужина. Три дня бодался с интерфейсами, абстрактными классами и методами и именно ваш курс привел всю кашу в голове в порядок. Максимально благодарю❤
@OlegPepeg
@OlegPepeg 3 жыл бұрын
Чел, твой контент идеальный!
@Lemon-dh4fz
@Lemon-dh4fz Жыл бұрын
Лучшее объяснение. Моё почтение автору
@TechLevelGames
@TechLevelGames Жыл бұрын
Годный разбор интерфейсов. Думаю надо наконец ими начать пользоваться)
@alexkrat5562
@alexkrat5562 2 жыл бұрын
Уроки супер! Автор большущий молодчина!
@va1r347
@va1r347 3 жыл бұрын
КРУТОЙ РОЛИК. ДАВАЙ ЕЩЕ ПРО ИНТЕРФЕЙСЬІ!!
@inzevision
@inzevision 2 жыл бұрын
Дякую, гарний контент :) Особливо сподобалось рішення з (out IDamageable damageable)
@НикитаФедоров-и8н
@НикитаФедоров-и8н 2 жыл бұрын
Большое спасибо бро, коротко, ясно, а самое главное без лишнего и понятными терминами
@PLoveCode
@PLoveCode 2 жыл бұрын
Хотим больше интерфейсов!
@cyber.punch.studios
@cyber.punch.studios 11 ай бұрын
Молодец! Очень достойный материал для новичков. Жалко мне не подался такой контент 6-7 лет назад. Особенно правильно, что показан конкретный пример на unity.
@ОлегЧилимов-ъ2ч
@ОлегЧилимов-ъ2ч 2 жыл бұрын
посмотрел до 5 видео, понятно стало только тут)
@ФирдавсРахмонов-ж7ъ
@ФирдавсРахмонов-ж7ъ 3 жыл бұрын
Самое главное что ты можешь сделать чтобы у тебя была постоянная аудитория то не забрасывай канал
@bebroid7184
@bebroid7184 Жыл бұрын
отличный урок, благодарю
@qzex2719
@qzex2719 3 жыл бұрын
Спасибо твоим урокам. Только благодаря таким как ты, можно самому дома учиться и сменить род деятельности кардинально. А самое важное, что можно начать создавать свои проекты мечты)
@squidward572
@squidward572 2 жыл бұрын
Это было хорошо . Третий видос подряд про интерфейсы и я понял их суть.
@antonpashkevich5061
@antonpashkevich5061 2 жыл бұрын
Чётко, спасибо! Качество звука и видео на отличном уровне и вроде бы все понятно
@АртемийКонь
@АртемийКонь Жыл бұрын
Шикарное объяснение
@ЕвгенийГречишкин-к1ж
@ЕвгенийГречишкин-к1ж 2 жыл бұрын
Спасибо, вы невероятно хорошо обьяснили. Лучший урок по интерфесам👍
@maxon17
@maxon17 2 жыл бұрын
Потрясающий канал, автор огромнейшее тебе спасибо!
@bezzbojnik1773
@bezzbojnik1773 2 жыл бұрын
Шикарный канал, спасибо автору за такую качественную подачу информации!
@trytowinunity1445
@trytowinunity1445 3 жыл бұрын
Спасибо за информацию!) Первый колокольчик который я нажал))
@Ezzzz4
@Ezzzz4 2 жыл бұрын
Блин, видео у тебя просто топ, не верится что у канала всего 2к подписчиков, продолжай в том же духе!!!! я кста нашел тебя в гугл поиске)
@slevinsaint9284
@slevinsaint9284 2 жыл бұрын
Больше интерфейсов и больше рейкаста) Ждём новые уроки)
@glybdayn3371
@glybdayn3371 Жыл бұрын
Круто, спасибо
@mikki5923
@mikki5923 2 жыл бұрын
Очень годный урок. Мне очень понравилось как ты объясняешь, всё очень доходчиво и понятно, а более того интересно слушать. + Отдельное спасибо за ссылки на статьи. Буду под всеми просмотреными видео писать коммент и ставить лайк. Очень годно!
@-it394
@-it394 2 жыл бұрын
Спасибо!
@mikki5923
@mikki5923 2 жыл бұрын
@@-it394 Так же если ты сделаешь такие же уроки про паттерны, то это было бы очень интересно. Особенно то как ты рассказываешь и открой кошелек для спонсирования, таких уроков какие ты делаешь очень мало и нужно их поддерживать.
@-it394
@-it394 2 жыл бұрын
@@mikki5923 В будущем обязательно сделаю такие уроки, когда буду уверен, что смогу правильно их донести) Профессионально я к сожалению не работал, поэтому могу не видеть или не понимать некоторых вещей, так что стараюсь разбирать то в чем уверен) Ну и параллельно расту с вами естественно. Так что все впереди) А со спонсорством еще придет время когда-нибудь)
@tomasgonsales483
@tomasgonsales483 3 ай бұрын
Слушай, Илья, ты наверное уже знаешь что твои уроки АХЕРЕННЫЕ ?!!!) Реально же, интерфейсы тема тяжеловесная, но вот именно этот урок дам мне понимание этой системы в целом. Спасибо! Продолжай пилить годноту! Удачи
@George_Panov_Moscow
@George_Panov_Moscow 28 күн бұрын
спасибо❤
@gamedevSkuf
@gamedevSkuf 2 жыл бұрын
Очень хороший урок! Спасибо!:)
@ПавелЮ-р5э
@ПавелЮ-р5э 3 жыл бұрын
Больше интерфейсов ) пж
@mugi1530
@mugi1530 3 жыл бұрын
Сделай видос про сериализацию, например в json, xml.
@slavlendstudio
@slavlendstudio Жыл бұрын
Круто
@slash7076
@slash7076 3 жыл бұрын
Классно.
@ПавелЮ-р5э
@ПавелЮ-р5э 3 жыл бұрын
Молодец )
@_goldmanv5925
@_goldmanv5925 Жыл бұрын
Автор, будут ли еще уроки. Сделано все супер. Может будет полноценный большой курс когда-нибудь?
@bigbluepie8983
@bigbluepie8983 2 жыл бұрын
Годно
@BerdJr
@BerdJr 2 жыл бұрын
Супер качественные у тебя ролики. Очень доступно и понятно. А можно как-нибудь ролик по делегатам и ивентам. Никак не пойму как сделать нормальную реализацию так называемого "callback", когда нужно отслеживать завершение какого-либо действия. Спасибо
@-it394
@-it394 2 жыл бұрын
Готовлю как раз ролик по делегатам и ивентам) Но боюсь в рамках одного ролика рассмотреть все не получится, так что начнём с основ а там посмотрим)
@TFM2024
@TFM2024 2 жыл бұрын
Давай видосы почаще, и еще, такой вопрос. Где можно найи нормальный, бесплатный курс на юнити. А то учиться по кусочкам из ютуба и гугла так себе.
@-it394
@-it394 2 жыл бұрын
На самом деле я и платных то нормальных курсов не знаю, а уж бесплатных мне кажется и нет совсем( В целом можно заглянуть на канал simple code там по документации идет рассмотрение всех аспектов языка, но без примеров практических особо:(
@BattlebornSons
@BattlebornSons 2 ай бұрын
В приведённом примере можно обойтись и без интерфейсов (так даже код будет короче), а это значит главный вопрос не раскрыт - зачем они вообще нужны? Зачем реализовывать интерфейс, если можно в каждом классе создать методы для передвижения и использовать их.
@artemvah2210
@artemvah2210 2 жыл бұрын
А как сделать интерфейс событием, чтобы всем, у кого есть данный интерфейс, передать сообщения?
@defix_gamedev
@defix_gamedev Жыл бұрын
ищешь всех монобехов (при загрузке сцены, к примеру), тусуешь по типам (выбираешь нужный интерфейс), и через класс, где у тебя это все хранится можешь передавать всем "сообщения" по методам интерфейса
@WeLoveCreatingGames
@WeLoveCreatingGames 2 жыл бұрын
Привет! Классные ролики! А когда будут продолжение? На самом деле хотелось поподробнее узнать про чаректор контроллер и риджибади,а если касаться последнего,то подробнее раскрыть функции его,как задавать поворот плавный на месте, как у танков,или наоборот резки ровно на 90 градусов,как задать движение по направлению,куда смотрит объект. У меня просто с этим возникли проблемы,а на российском ютубе не та информация или итог,что показывают немного не тот какой хотелось бы получить. Я разворачиваю объект с помощью клавиш,он у меня риджибади,но потом когда я нажимаю клавишу движения,он двигается не в ту сторону куда смотрит. Не понимаю как сделать так,чтобы он двигался туда куда смотрит,это ведь получается нужно разворачивать объект в глобальных координатах? и интересно,как сделать выстрелы пулей,выстрелы снарядов по траектории или гарпуна с "веревкой",как подбирать обратно такие объекты(гарпун) очень жду выпусков! и желаю поскорее разобраться с делами дома и начать нас радовать роликами!)
@-it394
@-it394 2 жыл бұрын
Спасибо! Продолжение будет в феврале) К сожалению зимняя сессия довольно длинная, да я ещё и короновирусом переболел, поэтому часть сессии переносится на февраль((( Так что как все сдам, так и продолжу выпускать ролики✊
@-it394
@-it394 2 жыл бұрын
Кстати хорошие идеи для роликов, спасибо! Думаю обязательно что-то сделаю)
@WeLoveCreatingGames
@WeLoveCreatingGames 2 жыл бұрын
@@-it394 здоровья! Не болей! И удачи на сессии! Буду тебя ругать,чтоб сдал!) И хитрый приём) Не пилить ролики,чтобы во время сессии больше народу ругали на хорошую оценку!))😁😉 А так да! Было бы классно получать расшифровку документации юнити с примерами🤩🤩🤩
@rusytop4910
@rusytop4910 3 жыл бұрын
Привет, есть такой вопрос, не по теме этого видео. как узнать в скрипте дочернего объекта когда срабатывает OnEnable у родителя ?
@-it394
@-it394 3 жыл бұрын
для какой цели это необходимо? Просто именно срабатывание OnEnable вроде ты не узнаешь напрямую, но в зависимости от того зачем это нужно можно что-нибудь придумать. Если надо выполнять допустим OnEnable в скрипте дочернего объекта после родителя (по какой-то причине этого не выполняется), то прямо в Unity можно назначить очередность выполнения скриптов
@rusytop4910
@rusytop4910 3 жыл бұрын
@@-it394 привет, я просто хотел генерировать рандомно цвет у объекта. Объект этот всегда включен, а вот его patent.parent включается и выключается, вот когда включается надо было менять цвет. Я просто у объекта написал OnEnable решил проверить, и оно работало. Видимо когда у родителя срабатывает эта функция она срабатывает и у дочерних
@-it394
@-it394 3 жыл бұрын
@@rusytop4910 Просто при деактивации родителя все дочерние объекты так же деактивируются, ну и при включении аналогично)
@UnityFAN_unity
@UnityFAN_unity Жыл бұрын
3:42 в чем разница тогда между наследованием и реализацией? как это различается через синтаксис c# ? :)
@Hellscaner
@Hellscaner Жыл бұрын
Если простыми словами попытаться объяснить, то наследование нужно использовать если у тебя есть объекты одного типа (пример есть базовый класс "враг", и его наследники орк, эльф и тд. Каждый из них может получать урон, но ведь его могут получать и например здания, а это другой класс который тоже может наследоваться). И тогда подойдут именно интерфейсы.
@UnityFAN_unity
@UnityFAN_unity Жыл бұрын
@@Hellscaner не это вопрос с собеседования. Ответ - разницы в контексте c# нету)
@bogdan9423
@bogdan9423 Жыл бұрын
Может кто-нибудь подсказать почему у меня этот point, который следит за мышкой, активируется только тогда, когда, я навожу её на один из предметов(врага, башню или стену)? А когда убираю с них мышь, они просто там и остаются, пока я не наведу её на другой объект, тогда она будет двигаться уже в его пределах. Написал, вроде как всё как на видео, но работает как-то не так Вот код: using Assets; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Shooter : MonoBehaviour { [SerializeField] private Transform targetPoint; private Camera cam; [SerializeField] private int damage; private void Awake() { cam = Camera.main; } private void Update() { Ray ray = cam.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if(Physics.Raycast(ray, out hit)) { targetPoint.position = hit.point; if (Input.GetKeyDown(KeyCode.Mouse0) && hit.collider.TryGetComponent(out IDamageable damageable)) { damageable.ApplyDamage(damage); } } } }
@bogdan9423
@bogdan9423 Жыл бұрын
И ещё, спасибо большое автору за видео, очень интересно и хорошо объяснено, хотя и не до конца пока всё понятно👍 А сколько времени ты учился, чтобы так уметь?)😅
@АндрейПрокофьев-е7д
@АндрейПрокофьев-е7д 6 ай бұрын
@@bogdan9423 из за этой строки: targetPoint.position = hit.point;
@sanded9321
@sanded9321 3 жыл бұрын
Получается интерфейс просто говорит нам что должно быть в классе? Типа если какой то метод или свойство повторяется в нескольких классах. то мы выносим их в интерфейс. и он это как подсказка что эти штуки нужно реализовать? Правильно я понял?
@-it394
@-it394 3 жыл бұрын
В целом да, если есть какое - то общее поведение у разных классов или допустим ты создаешь для класса поведение и понимаешь, что оно у тебя может использоваться в будущем еще где-то, то можно вынести это в интерфейс. Кроме того интерфейс позволяет инкапсулировать поведение, как было в примере на Unity у тебя в классе может быть прописано все что угодно, но исполняющему коду в Shooter неважно что там находиться, он работает с ним лишь на уровне IDamageable. Это минимизирует связность кода
@HINCO38
@HINCO38 3 жыл бұрын
Можешь посмотреть ещё ролик кодманки на эту тему m.kzbin.info/www/bejne/g4uyo3qOoJmLfKs
@РоманЕжов-щ4й
@РоманЕжов-щ4й Жыл бұрын
Сэ ПА Си БА!
@CryptoPaddincgron
@CryptoPaddincgron 2 жыл бұрын
наконц то я понял
@valerasychenko5214
@valerasychenko5214 3 жыл бұрын
почему в начале пишется SerializeFiled?
@HINCO38
@HINCO38 3 жыл бұрын
Что бы приватные поля были видны в инспекторе
@-it394
@-it394 3 жыл бұрын
Мы это делаем что бы приватные поля были видны в инспекторе, т.е. мы могли бы их задавать из инспектора Unity, но при это с точки зрения кода они бы оставались приватными
@slash7076
@slash7076 3 жыл бұрын
А где перегрузка?)
@-it394
@-it394 3 жыл бұрын
Ну уж с перегрузкой как-нибудь можно разобраться самим))
@godfather7695
@godfather7695 Жыл бұрын
Единственное хорошее объяснение что такое интерфейс!👍 в остальных источниках путают причину и следствие 🤦‍♂️ таким образом интерфейс нам нужен для того, чтобы какой либо класс мог взаимодействовать с другими классами без необходимости прописывать объекты этих классов. Иначе как в данном примере нам пришлось бы прописывать каждый объект с которым взаимодействует класс shooter и если через пару тройку обновлений мы введем в игру еще какой нибудь новый класс то и его надо прописывать сюда, а если таких enemy десятки то код становится однотипным и будет целая куча объектов этого класса с одинаковыми методами. А так мы цепляем интерфейс на нужный нам класс, прописываем поведение и уже класс шутер определяет есть ли у того класса интерфейс взаимодействия и если он есть то shooter может проводить над ним установленное интерфейсом действие. При этом реализация отдана в сам класс-наследник интерфейса чтоб избежать ромба наследования и по сути определения конкретного выполнения этого действия. Так например при взаимодействии shooter и orc орк умирает с каким нибудь эффектом или словами, а при взаимодействии с wall стена должна рассыпаться молча😅, а стена у которой нет интерфейса будет стоять как стояла т.к. shooter с ней не будет никак взаимодействовать в рамках установленного интерфейса, как то так?🤔
@godfather7695
@godfather7695 Жыл бұрын
Ну или как пульт и телевизор: если у телевизора есть интерфейс взаимодействия с пультом то он будет выполнять действия, если пульт от другого телевизора(сигнатура другая) или телевизор вообще не имеет интерфейс взаимодействия с пультом то и происходить ничего не будет. Или же изначально телевизор проектировался без пульта т.к. о такой возможности тогда небыло известно но тут человечество сделало рывок в науке и смогло изобрести дистанционное управление и как быть этому телевизору если у него изначально такой функции небыло, а потребители уже требуют, чтоб он был с пультом? Приделать ему коробочку со смарт-тв у которой уже предусмотрен пульт управления с возможностью запускать этот телевизор без особой необходимости изменять внутрянку или вообще переделывать телевизор заново
@magnemagnetiq7219
@magnemagnetiq7219 2 жыл бұрын
Эти выскакивающие со звуком картинки лично меня отвлекают. Да любой человек, если у него перед носом махать руками и щелкать пальцами, будет отвлекаться и потеряет понимание темы.
@NaNaNaS_000
@NaNaNaS_000 2 жыл бұрын
Не совсем понял для чего это нужно, получается вы создали разные методы и это можно было сделать без интерфейсов
@opsstop
@opsstop Жыл бұрын
Все бы хорошо, но в процессе объяснения темы, написания или разъяснения кода эти всплывающие, клацающие детские мемчики сбивают с толку, постоянно приходится читать что там написано, а там какая-то шляпа типо "смешная". Нужно по несколько раз пересматривать, а то и начинать искать другие видео без мемов, вставок и всех этих свистелок-перделок. Автору спасибо, но БЛИН! Подача - ужас эпилептика.
@irk3896
@irk3896 3 жыл бұрын
Урок отстой, он походу для профессионалов
@-it394
@-it394 3 жыл бұрын
Это уже 8-я часть серии уроков, так что советую посмотреть предыдущее, что бы было понятнее. Однако если вы только только начали изучать программирование, то это будет тяжело понять сразу
@HINCO38
@HINCO38 3 жыл бұрын
Проффесионали и так это знают )
Как настроить билд под WebGL в Unity?
1:31
Yan Abramov
Рет қаралды 1,4 М.
1, 2, 3, 4, 5, 6, 7, 8, 9 🙈⚽️
00:46
Celine Dept
Рет қаралды 117 МЛН
Миллионер | 3 - серия
36:09
Million Show
Рет қаралды 2,1 МЛН
Noodles Eating Challenge, So Magical! So Much Fun#Funnyfamily #Partygames #Funny
00:33
Unleashing AI productivity with Surface | BRK294
45:40
Microsoft Events
Рет қаралды 39
#7 Интерфейсы понятным языком в Unity C#
10:43
СПАСИ свою игру! Все про DoTween в Unity ч.1. Анимации с помощью кода
16:14
Подробный урок по Entity Component System в Unity
15:27
Insane One - Разработка игр
Рет қаралды 45 М.