Как дебажить в Unity? Поиск и отладка ошибок. Бонус: почему UnityEvent - плохо

Как дебажить в Unity? Поиск и отладка ошибок. Бонус: почему UnityEvent - плохо

8,707 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

CentraleDuce
CentraleDuce - 16.08.2023 07:12

А нельзя для переименования использовать ctrl+ r ×2? Вроде ведь тогда во всех классах переименуется ивент

Ответить
PSI
PSI - 12.04.2023 01:23

как всегда супер

Ответить
UralFanSoftware
UralFanSoftware - 18.01.2023 12:08

А если я захочу поменять цвет кнопки или картинку на ней? То как к ней обращаться внутри метода OnScriptButtonClick?

Ответить
Екатерина Еремина
Екатерина Еремина - 19.12.2022 19:47

Мне говорили, что лучше не делать подписку на кнопки через ивенты юнити, но никто так и не обяьснил нормально почему? Теперь я понимаю почему и что это действительно гемор.
Спасибо за видео, было очень полезно!

Ответить
Raindery
Raindery - 13.09.2022 18:30

Про UnityEvent
На них можно подписываться в ручную без инспектора. Тогда такие вещи, как переименование методов не будет болью.
К тому же, как уже верно написали их могут использовать люди, которые обычно в код не лезут. Но опять же, для таких целей я бы написал отдельный компонент, внутри которого происходила бы подписки-отписки. Я, например, стараюсь не пользоваться такими не надёжными вещами, как UnityEvent в инспекторе. Лучше все ручками делать.
Видос классный!

Ответить
Эдуард Кик
Эдуард Кик - 19.07.2022 20:31

sps

Ответить
nikotinStudio
nikotinStudio - 30.06.2022 20:08

Всем привет, вопрос совершенно не по теме. Кто нибудь сталкивался с проблемой долгой компиляции скриптов в Unity. При чем проект совершенно пустой, создаешь скрипт и вылезает окошко "Reload Script Assemblies", вылезает буквально на пару секунд конечно, но все равно не понятно почему. Данная проблема на версии 2021.3.5f1. Компьютер новый и довольно мощный (i5 12400, 16gb, m2 ssd). Задаю вопрос здесь, так как в интернете ничего путного не нашел, и на русских и на зарубежных форумах. Если кто то знает в чем причина, пожалуйста ответье.

Ответить
Unity Learn
Unity Learn - 13.06.2022 06:31

Спасибо, крутой канал почему пол года тебя не рекомендовало

Ответить
Anton Pashkevich
Anton Pashkevich - 12.06.2022 14:35

Ну плюс того что ты метод привязываешь к кнопке, она может принимать в себе какой то аргумент.
А такая штука очень удобная! и много юзаю в своих проектах.

Пример: Есть магазин скинов. И кнопка выбора скинов... вот только скинов много, а метод то один.
По этому к кнопке привязываю Индекс (скина). Все по индексу обращаемся к массиву и от туда получаем наш скин.

Вроде бы элегантно и без порева :3

Ответить
Keniseg
Keniseg - 09.06.2022 22:59

оч полезное видео, для меня особенно про юнити эвенты

Ответить
Виталий Собакин
Виталий Собакин - 09.06.2022 15:37

Йо, оболденный материал. Спасибо) Го unit тесты может на какое-то следующее видео?

Ответить
maxvell
maxvell - 09.06.2022 13:55

Понял, что UnityEvent- плохо, но не понял, как сделать подругому

Ответить
Андрей Усов
Андрей Усов - 09.06.2022 13:46

В последнее время выступаю "онлайн-консультантом" для одного школьника. Вроде, шарит и пытается разобраться. Для меня стало культурным шоком, что он не знает про дебаг. Всегда думал, что это совершенно базовый инструментарий, без которого никак. Если бы с ним не пообщался, уже бы строчил комментарий по типу "для кого это видео с очевидными вещами?" 😀😀😀 Кстати, в студии можно сделать удобный финт. Когда встал на точке останова, можно поводить мышкой над строками. Перед ними появляется зеленый значок play. Можно ткнуть этот play, "промотав" несколько строчек. Удобно, если не хочешь заходить в какой-нибудь цикл.

Ответить
Андрей Усов
Андрей Усов - 09.06.2022 13:46

В последнее время выступаю "онлайн-консультантом" для одного школьника. Вроде, шарит и пытается разобраться. Для меня стало культурным шоком, что он не знает про дебаг. Всегда думал, что это совершенно базовый инструментарий, без которого никак. Если бы с ним не пообщался, уже бы строчил комментарий по типу "для кого это видео с очевидными вещами?" 😀😀😀 Кстати, в студии можно сделать удобный финт. Когда встал на точке останова, можно поводить мышкой над строками. Перед ними появляется зеленый значок play. Можно ткнуть этот play, "промотав" несколько строчек. Удобно, если не хочешь заходить в какой-нибудь цикл.

Ответить
Brainwashing
Brainwashing - 09.06.2022 13:45

Сэнк ю

Ответить
Zhnec Zhnec
Zhnec Zhnec - 09.06.2022 13:20

а если нужно прокинуть переменную? в onClick можно а через подписку как?

Ответить
DEF 61
DEF 61 - 09.06.2022 12:53

ЮнитиЭвенты фу, подписка на канал. Лайк поставил :)

Ответить
Такао
Такао - 09.06.2022 11:29

Вопрос не по видео: что-то решил по поводу своего курса? Я бы взял с удовольствием

Ответить
Tumanop
Tumanop - 09.06.2022 10:49

Понятно почему используется вижуалка, в райдере когда с зажатым командом на маке или контрлом на винде кликаешь левой кнопкой на метод то показывается все классы и методы которые слушают или ссылаются на метод на который кликнул.

Ответить
Aleksandr Rexby
Aleksandr Rexby - 09.06.2022 10:47

как то раньше и не задумывался в чем разница между шагом с заходом и обходом. типа куда это он собирается обходить и зачем)) а оно вон как работает

Ответить
Tumanop
Tumanop - 09.06.2022 10:44

В вижуалке работают только те кто не когда не работал в райдоре. Райдер лицензионный дорогой но есть триал на месяц который можно обновить новой почтой, все настройки райдера сохраняются и не чего после смены акка в райдере не меняется.
Эх, после райдера я не смог вернутся обратно в вижуалку и вернусь только в 2х случаях: 1. Если райдер прекратят поддерживать. 2. Если вижуалка станет намного лучше райдера.

Ответить
Mesha Vorazoon
Mesha Vorazoon - 09.06.2022 10:43

Очень хороший и полезный урок! Вот если бы сюда еще следующим уроком добавить тестирование, вообще было бы шикарно

Ответить
парампампам
парампампам - 09.06.2022 10:22

Сумасшедше нужные видео! Спасибо большое.

Ответить
LexMash
LexMash - 09.06.2022 10:05

Спасибо за видео!
Вот бы возродить серию про интерфейс... ;)

Ответить
Сергей Милашенко
Сергей Милашенко - 09.06.2022 09:58

Лайк и коммент в поддержку канала!

Ответить
Сергей Милашенко
Сергей Милашенко - 09.06.2022 09:58

Лайк и коммент в поддержку канала!

Ответить
Anton Kerp
Anton Kerp - 09.06.2022 09:19

Начнём с того, что весь смысл инспектора — это возможность работать с проектом, не забираясь в код. И это, в первую очередь, тулинг для разного рода дизайнеров, которым не стоит лезть в код. Это не безопасно как для кодовой базы, так и для психики дизайнеров. И Unity Event — это про то же. У любой игры есть бизнес-логика и представление. И всё, что касается инспектора, относится к уровню представления. И на этом уровне не может быть никаких важных для логики вещей и подписок. И тем более подписок на проектный доменный код, который имеет свойство меняться.
Если идёт разработка визуальной части какого-то модуля и оставляются UnityEvent на разного рода чихи по типу "нажато то-то", "открыто то-то", "такой-то прогресс-бар заполнен", то дизайнеры скажут вам спасибо, ведь они могут на эти вещи навешать запуск каких-то частиц или прочих визуальных приблуд, не бегая постоянно к программистам, и могут итерировать этот процесс сколь угодно долго. И цеплять они будут юнитёвые или любые другие ThirdParty-компоненты, у которых даже при обновлении есть поддержка совместимости. И даже если что-то отвалится, то отвалятся только эти установленные частицы, наличие которых не несёт важности для логики. А если в проекте есть валидатор, то перед сборкой он ещё покричит о том, что callback в редакторе потерялся.
Всё остальное важное для логики барахло будет общаться на делегатах, которые будут иметь корректный уровень доступа и не будут доступны для дизайнеров. У всего есть свои границы применения.
И говорить, что UnityEvent — плохо, сродни тому, что жаловаться на то, что банка с огурцами плохо забивает гвозди.

Ответить
Rahman Programist
Rahman Programist - 09.06.2022 09:05

Debug это практически последнее что меня интересует в unity, и у меня вопрос эта важная тема?

Ответить
Slash
Slash - 09.06.2022 09:03

класс)👍

Ответить