UnityEvents. ЛУЧШЕЕ решение для разработки игр на Unity???

Поділитися
Вставка
  • Опубліковано 25 лип 2024
  • 🔎🔎📝Всем, привет! Сегодня мы разберемся с тем, что из себя представляют UnityEvents и чем они отличаются от стандартных событий. В подробностях разберем способы их применения, а также посмотрим на то какое из решений является более производительным. Проанализируем все вышеперечисленное и разберемся что и когда лучше применять при разработке своих проектов. Так что смотрите видео до конца - будет интересно!
    🕒Тайм-коды:
    ➜ 00:00 - Вступление
    ➜ 00:39 - Небольшой рефакторинг кода с прошлого урока и немножко воды
    ➜ 01:56 - Анонс двух примеров и небольшая схема первого из них
    ➜ 02:36 - Разбор первого примера с применением UnityEvents
    ➜ 07:42 - Разбор второго примера - применяем UnityEvents для настройки из инспектора
    ➜ 13:00 - Подводим некоторые итоги по UnityEvents
    ➜ 15:12 - Разбираемся: что же производительнее?
    ➜ 16:44 - Мое мнение по применению UnityEvents и заключение)
    ⚡️⚡️⚡️ Полезные ссылки ⚡️⚡️⚡️
    🔎 • C# Делегаты и события(... - ссылка на урок по ивентам и делегатам
    🔎 • ХП БАР (HEALTH BAR) в ... - ссылка на урок по HealthBar на ивентах
    🔎 metanit.com/sharp/tutorial/7.... - обещанная ссылка на статью по форматированию строк в C#
    🔎 ua-cam.com/play/PL0.html... - ссылка на плейлист по созданию персонажа
    🔎 • С# КЛАССЫ с ПРИМЕРАМИ ... - ссылка на уроки по C# по Unity
    🔥🔥🔥 На этом канале вы найдете множество уроков по Unity и C#, а так же различных видео на игровую тематику, так что не стесняйтесь, заглядывайте на канал и вы обязательно найдете что-то по душе!🔥🔥🔥
    🎧🎧🎧 Музыка в видео 🎧🎧🎧
    ➜ Effervescence - ZAYFALL
    ➜ Soave - Vendredi
    ➜ When You Feel Most Alive - Broke in Summer
    ➜ Teen Party (feat. Vendredi) - Broke in Summer
    #UnityEvents#ЯковлевИлья#Unity3D#ИВЕНТЫВUNITY

КОМЕНТАРІ • 47

  • @HUNTER-lp5hy
    @HUNTER-lp5hy 2 роки тому +8

    Без доп. классов для передачи аргументов работают юнити ивенты. Вот так например задавал поле в одном из проектов
    [SerializeField] private UnityEvent _redLight;
    Все отлично работает. И передача через код и в инспекторе норм отображается и передаются аргументы

    • @-it394
      @-it394  2 роки тому +5

      Да, не проверил это дело в новых версиях. Раньше насколько я помню UnityEvent был абстрактным классом и необходимо было создавать обертку. Перед видосом глянул документацию docs.unity3d.com/2022.2/Documentation/Manual/UnityEvents.html и там до сих рекомендуют создавать такой оберточный класс, поэтому подумал что все так и осталось. Спасибо за наблюдение!)

  • @mrmelog4320
    @mrmelog4320 Рік тому +3

    Ахренительный контент!! Очень всё понятно и интересно спасибо огромное!) Очень хочется увидеть продолжение!

  • @victor2391
    @victor2391 2 роки тому +3

    Пишу обо всем, что замечаю - комментариев под видео стало побольше, рад этому факту. Канал достоин большего числа подписчиков. Спасибо за материал.

  • @kyrumin5157
    @kyrumin5157 Рік тому +2

    И почему я не мог найти твой канал раньше? Это годнота! Жаль, что ролики не выходят(

    • @-it394
      @-it394  Рік тому +2

      Надеюсь скоро будут ещё)

  • @slash7076
    @slash7076 2 роки тому +1

    О, молодец, ждал это видео)

  • @user-up6fj3wm5h
    @user-up6fj3wm5h 2 роки тому +1

    Похоже именно вы, товарищ, поможете мне с курсачом

  • @adiletasangalukov8556
    @adiletasangalukov8556 2 роки тому +3

    Спасибо за работу автору

  • @oldborodach
    @oldborodach 2 роки тому +1

    Не особо еще шарю, но очень хорошо что ты продолжаешь деятельность свою 🤝 я думаю придет у меня понимание позже так что не бросай смотрю твои видосы и делюсь с людьми ✌️
    Но что хочу сказать пока учился по UnityEvents

  • @kitws
    @kitws 2 роки тому +1

    Спасибо!

  • @mrmelog4320
    @mrmelog4320 Рік тому +4

    Пожалуйста не забрасывай свой контент, он невероятно крутой!! У тебя очень приятные для глаз ролики, и всё понятно) Только пожалуйста делай побольше схем работы кода. Это очень хорошо создаёт целостнуб картигу!!!)

    • @alexgameryt6256
      @alexgameryt6256 Рік тому +1

      Сейчас у создателя канала много дел. И он занят. Контент и я хочу

  • @bezzbojnik1773
    @bezzbojnik1773 2 роки тому +1

    Спасибо за видео :)
    Хотя всё равно многое пока что не понятно, надо руками пробовать

  • @slash7076
    @slash7076 2 роки тому +4

    3:44, строка 7, для оптимизации перед int лучше поставить in.

    • @user-cs8tz7nn1c
      @user-cs8tz7nn1c 2 роки тому +2

      В такой "оптимизации" практической пользы особо нету

    • @slash7076
      @slash7076 2 роки тому

      @@user-cs8tz7nn1c ахах, ты проверял?)

    • @user-cs8tz7nn1c
      @user-cs8tz7nn1c 2 роки тому +1

      @@slash7076 да

  • @prizrog1
    @prizrog1 Рік тому +1

    Полезные видео. Только звук появления мемов отвлекает, особенно в наушниках. Без них было бы круче) Успехов каналу!

  • @mideks
    @mideks Рік тому +3

    3:50, дак оператор ?. и так проверяет же сам объект на null, и он является сокращённой версией того, чего сделал в итоге ты. Получается, всё равно стоит писать ?.Invoke()

  • @task1836
    @task1836 2 роки тому +2

    Спасибо, смотрю почти все ваши видео.Не могли бы вы сделать механику атаки как в бравл старс(типо показывается на какое расстаяние стреляет и т.д)?Заранее спасибо

  • @karbitvova
    @karbitvova 2 роки тому +1

    красавец

  • @bogotoff
    @bogotoff Рік тому

    Используй класс StopWatch чтобы замерять время работы. А ещё время зависит от количества подписчиков на ивенты. У меня разница 30x при одном подписчике в пользу C# events. При 10 подписчиках 15x(казалось что разница будет больше, а не меньше).

  • @sere021298
    @sere021298 2 роки тому +2

    У тебя очень полезный контент? Желаю тебе успеха в развитии канала и профессиональных навыков! Подписка, лайк и колокольчик с меня!

  • @slash7076
    @slash7076 2 роки тому +7

    Чувак, расскажи про разные паттерны проектирования, где не обойтись без ивентов и делегатов)

    • @creex463
      @creex463 2 роки тому +4

      Этот человек делает метод который позволяет вызывать событие кому-угодно. Что уже противоречит принципам SOLID. А вы паттерны просите его разобрать.

    • @creex463
      @creex463 2 роки тому +1

      то что это "пример", "код для начинающих", не освобождает от принципов написания качественного кода.

    • @slash7076
      @slash7076 2 роки тому +1

      @@creex463 солидарен.

    • @creex463
      @creex463 2 роки тому +1

      @Дарий значит у вас в компании не занимаются поддержкой написанного ПО. Это враньё что бизнесу не нужен чистый код)

    • @user-cs8tz7nn1c
      @user-cs8tz7nn1c 2 роки тому +1

      События сами по себе реализация паттерна Наблюдатель. Так что во всех паттернах можно обойтись без событий)

  • @user-kr8sy3ck4n
    @user-kr8sy3ck4n Рік тому

    Может и не профи, но уроки и материал интереснее и качественнее чем у многих "профи" учащих других людей.

  • @megachebu
    @megachebu Рік тому

    настройка событий дизайнером через инспектор - опасное дело :) в более-менее крупном проекте он может разгуляться с этими настройками и потом при небольшом рефакторе кода всё это к чертям рассыпется. И вы даже не сразу это заметите. Но для совсем крохотных вещей, или например для встроенных компонентов ( как AudioSource в примере) сойдёт.

  • @slash7076
    @slash7076 2 роки тому +1

    3:25, 🤔, лучше использовать scriptable object, а то когда будешь добавлять вторую валюту (донатную или кристаллы) придётся код копировать.

    • @-it394
      @-it394  2 роки тому +2

      Мы не разбирали ещё scriptable objects( Да и в целом тут простой примерчик чисто под тему. В таком случае и UnityEvents тут необязательно применять:)

  • @chekking95
    @chekking95 Рік тому

    Сделай пожалуйста видио где враг отнимает хп

  • @slash7076
    @slash7076 2 роки тому

    1

  • @mao3193
    @mao3193 2 роки тому +2

    Ассет UltEvent - круче, лучше его использовать

    • @mao3193
      @mao3193 2 роки тому +1

      @Дарий да. Загугли на ассет сторе

  • @veiterio
    @veiterio Рік тому

    Это самое, лучше всё-таки отписываться даже при объявление UnityEvent, ибо потом после компиляции этот мусор остаётся в памяти)

  • @sergiimalinin2585
    @sergiimalinin2585 2 роки тому

    Не дуже приклад... GetComponent()... Instantiate ... А як розширюватися усе буде? static в окремому классі ... Такі собі рішення. Архетиктуру й взагалі не видно.

    • @-it394
      @-it394  2 роки тому +1

      Вы можете уточнить про какие моменты в видео вы говорите? Со статическими ивентами возможно соглашусь, но хочется тогда найти какой-то ещё вариант связывания таких эвентов. А на счёт создания текстовых сообщений я сказал, лучше будет создать пул объектов для такого, но ещё и это в данном видео объяснять не хотелось. Надеюсь правильно вас понял

  • @il35215
    @il35215 Рік тому

    Есле линковать эвенты через редактор, главный минус состоит в том что ты его хер потом найдешь и будешь гадать а какого вот тут в игре происходит это и не происходит вот то. Когда ты все делаешь в коде то все это значительно легче отслеживать хоть и тут бывают ньюансы. Дизайнер парень отличный но он за баги не отвечает, а тебе геморой на ровном месте. Конечно все это актуально только не в том случае если проект это гиперкеж.