#7 Интерфейсы понятным языком в Unity C#

Поделиться
HTML-код
  • Опубликовано: 29 сен 2024

Комментарии • 36

  • @Blossantrape
    @Blossantrape Год назад +5

    Привет, сделай, пожалуйста, ролик по созданию интерфейса игры. Как правильно вызывать его, переключать и правильно всё это реализовать. Спасибо)

  • @dmitriypermyakov5402
    @dmitriypermyakov5402 Год назад

    В головном уборе в помещении могут находится или женщины или священнослужители или мусульмане. Хто ты, маска? 🤔

    • @GameDirectorMichael
      @GameDirectorMichael  Год назад

      Это кто сказал?

    • @dmitriypermyakov5402
      @dmitriypermyakov5402 Год назад

      @@GameDirectorMichael все знают, кто не жил в дупле дерева - "Почему существует запрет на ношение шапки в помещении?"

    • @jojofag793
      @jojofag793 Год назад

      Вы зашли сюда чтобы получить полезную информацию или чтобы обвинять человека, который ее преподает в "неподобающем" внешнем виде?
      Лично мне все равно как и во что одет человек, вам бы посоветовал тоже перестать обращать на это внимание. И не надо, пожалуйста, пытаться аргументировать против тезисами по типу "все знают, кто не жил в дупле дерева": если вам нечего сказать что-то более внятное, чем "так принято", то и не стоило оставлять свое очень "важное" замечание.

    • @dmitriypermyakov5402
      @dmitriypermyakov5402 Год назад

      @@jojofag793 так ведь и я полезную информацию озвучил. Стыдно, дожить до бороды и не знать элементарных вещей.

    • @JustPlayingBroGD
      @JustPlayingBroGD Год назад

      @dmitriypermyakov5402 Ну вот зачем это все? На такие каналы обычно приходят люди, которым интересно узнавать новое, учиться... автор душу вкладывает в свое творчество, делится своим опытом...
      Можно ведь и так сказать: "Глупые комменты могут оставлять или глупцы, или ущербы, жаждущие самоутвердиться за счет опускания других, или обделенный вниманием человек, готовый на все, лишь бы кто-то его заметил. Кто ты, Дмитрий Пермяков?".
      По поводу головного убора. За исключением некоторых специфических сообществ, наличие/отсутствие головного убора не является обязательным. Если кто-то привык к другому - пожалуйста, но вовсе нет необходимости в том, чтобы проецировать свои комплексы на других людей, пытаясь "скорректировать" их поведение примитивными манипуляциями, вроде той, что пытается вменить чувство вины. Это как-то низко...
      Далее. Чел у себя дома (на своей территории, не на твоей) находится и имеет полное право хоть кастрюлю на голову одеть. Его право и его дело.
      Кепка вполне себе вписывается в обстановку и дизайн окружения, который, кстати, продуман и стилизован.
      Ну и еще, хочешь умничать - с пунктуацией подружись, а то запятые куда-то потерял 🤔

  • @kawaikaino5277
    @kawaikaino5277 Год назад +4

    Почему я не нашел этот канал раньше, вместо Гошей Дударей и т.п

  • @Lins-e1g
    @Lins-e1g 2 месяца назад

    раньше я думал что интерфейсы бесполезны на сейчас понял это реально полезная штука чем то похоже на абстрактные класс

  • @happyend500
    @happyend500 19 дней назад

    Реализация членов, это сильно

  • @tovkats
    @tovkats 24 дня назад

    Интерпейсы

  • @r2d2-vw9wc
    @r2d2-vw9wc 7 месяцев назад +2

    Спасибо

  •  Год назад +1

    Я бы ещё посоветовал сейчас (если ты новичок и не шаришь) попросить у GPT написать логику интерфейса и попробовать засунуть в передаваемое значение, допустим - currentPlayerHealth; и понять как оно связано.
    Пару манимуляций и всё станет понятно

  • @АнтонЕлумеев
    @АнтонЕлумеев Год назад +1

    Спасибо за очередное полезное видео!) Хотя и так знаю про интерфейсы. Сейчас грызу addressable....... Вообще, такое ощущение, что документации пишут для того, чтобы отбить у людей желание заниматься чем-либо. Вот без видосов, изучая чисто документацию Unity, я бы уже бросил это дело)

    • @GameDirectorMichael
      @GameDirectorMichael  Год назад +1

      Адресаблес Крутая штука, удачи) с обучением)

    • @squitani
      @squitani 8 месяцев назад

      понял, как юзать?

    • @АнтонЕлумеев
      @АнтонЕлумеев 8 месяцев назад

      @@squitani частично да

    • @squitani
      @squitani 8 месяцев назад

      @@АнтонЕлумеев как переключать сцену с помощью addressables , знаешь?

  • @Veles017
    @Veles017 6 месяцев назад

    Отличный урок! Спасибо большое!

  • @STIGRADOR
    @STIGRADOR 10 месяцев назад

    Черт.... А у меня не пашет:( у меня есть класс, который не находится на сцене и поиск по сцене не находит его :( Хотя метод FindObjectsOfType перебирает все мои объекты на сцене, которых может быть целая туча и все равно не находит класс, реализующий интерфейс, лежащий в корне проекта:(((( в чем может быть проблема? Да и вообще, Майкрософт (создатели С#) косячеры. Не продумали множественное наследование. Приходится теперь каким-то интерфейсом пользоваться.... Еще и поля туда воткнуть нельзя блин... О. Прикольно, а свойства можно...

    • @GameDirectorMichael
      @GameDirectorMichael  10 месяцев назад

      Вообще лучше не пользоваться Fiind objects of of Type, если у тебя целая туча объектов, в таком случае можно по имени искать если ссылку по какой-то причине по-другому не сделать. И ты написал что у тебя есть класс который не находится на сцене и поиск по сцене не находит его, тут всё логично если классно нет на сцене он его и не найдёт.

  • @jayrome9946
    @jayrome9946 5 месяцев назад

    какое же простое и от этого, крутое объяснение!!! Ты лучший преподаватель! Спасибо за урок! жаль что так мало уроков. Директор Михаил можно пожалуйста, generic class, паттерны, пул объектов. Надеюсь в будущем у тебя появится платный курс (много денег нет) и закрытый дискорд для учеников, где ты будешь передавать все знания по наследству таким как я! 🙃

  • @STIGRADOR
    @STIGRADOR 10 месяцев назад

    Хм... А если этому классу не нужен этот метод - то его можно оставлять пустым? Крутяк! Так в принципе я могу зафигачить все в один интерфейс и не реализовывать ненужные мне методы! Прикольно! Спасибо за хелп!

    • @GameDirectorMichael
      @GameDirectorMichael  10 месяцев назад

      Да то есть он обязательно должен быть в классе но может быть абсолютно пустым

  • @xVitOSx
    @xVitOSx Год назад

    всё равно ничего не понятно...
    в чём смысл интерфейсов? я просто не понимаю, что они дают

    • @GameDirectorMichael
      @GameDirectorMichael  Год назад

      Доступ к методу не через класс, а через интерфейс. Это упрощает работу с разными классами, то есть в 2 классах разных может быть 1 интерфейс.

    • @TheHellguitarplayer
      @TheHellguitarplayer Год назад

      например: У тебя есть интерфейс IWeapon, его реализуют классы Pistol, Rifle, Shotgun. Теперь ты в своем плеере определяешь в классе пользователя поле IWeapon currentWeapon и передаешь туда просто твое оружие из списка. Это разрывает жесткую зависимость и делает код расширяемым, если ты захочешь в дальнейшем добавить еще какое-нибудь оружие - тебе нужно будет просто добавить оружие и реализовать в нем интерфейс IWeapon и оно будет работать без дополнительных танцев с бубном.

  • @gaymdev6144
    @gaymdev6144 Год назад

    Гайс, делать игру без интерфейсов = СМЕРД. Они ОЧЕНЬ приятные+полезные, хз как без них жить (с костылями ходить).
    Смотри, в моем хороре есть электрические устройства. Лампы, радио, телевизоры и прочие штуки.
    У каждого электрического устройства есть своя логики работы, лампам нужно отключить свет и отключить материал лампочки, радио включает аудиоКлип и шейдер для постветки работы.
    То есть, у каждого такого электрического устройство есть свой собственный скрипт (так как у них разная логика включения и выключения).
    Я хочу, чтобы мой призрак активировал все возможные электрические устройства, когда проходил мимо них.
    Без интерфейсов и наследования это делается крайне печальным образом, типа:
    GetComponent().UseTV();
    GetComponent().UseRadio();
    GetComponent().UseLight();
    То есть, в скрипте монстра или игрока или любой другой штуки мне необходимо прописывать код выше, верно? А если я решу добавить еще одно электрическое устройство, то мне придется добавлять еще одну строчку в каждый скрипт, который хочет использовать электрическое устройства. А если у меня 20 устройств? Придется заниматься дрочиловом, а оно крайне демотивирует.
    А вот теперь смотри как эта задача решается с помощью интерфейса.
    0. Создаем интерфейс с 1 строчкой кода "void Interact();"
    1. Наше электрическое устройство (например радио) наследуется от интерфейса "IElectroItemUse" и реализует метод интерфейса вот так
    public void Interact()
    {
    UseRadio();
    }
    Скрипт телевизора же будет реализовывать интерфейс слегка по другому
    public void Interact()
    {
    UseTV();
    }
    3. Теперь игрок, монстр и кто-угодно может выполнить метод активации электрического устройства через строку
    gameObject.GetComponent().Interact();
    private void OnTriggerEnter(Collider other)
    {


    if (other.CompareTag("Electro"))
    {
    other.GetComponent().Interact();
    }
    }
    А вот таким образом призрак ходит по дому и если он цепляет коллайдером какое-либо устройство, то оно активируется.
    Интерфейс это крайне простой способ для ЛЮБЫХ скриптов получить доступ сразу к ТЫСЯЧИ или сотне скриптов, что реализуют интерфейс.

    • @GameDirectorMichael
      @GameDirectorMichael  Год назад

      Все так и есть

    • @jayrome9946
      @jayrome9946 4 месяца назад

      ну так можно же без интерфейса обратиться и без всяких лишних проверок
      за место этого и интерфейса. так вообще хз кто обращается к каждому TV, Radio и прочее...разве прям вообще новички
      GetComponent().UseTV();
      GetComponent().UseRadio();
      GetComponent().UseLight();
      когда можно вот так
      if(other.CompareTag("Interactive"))
      other.GetComponent().Use();
      без лишних созданий интерфейсов и массивов, которые лишний раз нагружают работу. ещё и быстрее будет...

    • @johnleo7
      @johnleo7 3 месяца назад +1

      спасибо за пример

    • @gaymdev6144
      @gaymdev6144 3 месяца назад

      @@johnleo7 рад!

    • @ЯшаЛава-д1к
      @ЯшаЛава-д1к Месяц назад

      ​@@gaymdev6144дружище, а почему просто не подписаться на все эти методы