А если упороться и IsMoving спарсить в int и в рассчете скорости бега или высоты прыжка всегда умножать на Int(IsMoving)? Типо если мы двигаться не можем, то мы умножим скорость на ноль => стоим на месте, а если может ( =1 ) , то умножаем на 1 и получается что получается. Или это больше похоже больше на костыли, чем фичу?
Спасибо за разбор! Все по делу:) Если будет ещё такая возможность, то постараюсь уделить больше времени коду и учесть косяки, в этот раз поздно узнал про данную затею с ревью, и пару вещей действительно не успел нормально почистить(свитч например ахпхаха). А пока буду учиться дальше!)
@@Lipatoff1992 Согласен, тут у меня отголоски физики) Хочется разграничить понятие модуля вектора скорости и самого вектора скорости, но писать вектор вектор скорости тупо, и вот вырождается что-то подобное) На самом деле над названиями и пониманием того как кратко и исчерпывающе называть методы и поля мне надо поработать. А по поводу умножения вектора на число я знаю, просто с моей реализацией было неудобно умножать весь вектор сразу и пришлось вот так изгаляться, согласен, что не очень красиво) Но буду стараться улучшать код, спасибо за замечания и советы!
11:15 в новых версиях юнити она кеширует все объекты с тегом MainCamera и будет брать первое валидное значение из кеша. Правда, каждый раз будет вызываться геткомпонент.
Про isStoped или stoped. Это зависит от тех, кто писал код. Например, в гугловских библиотеках для java/kotlin исполбзуется is. В тех же вьюшках есть isEnabled, isFocusable и т.д. Ну и впринципе на андроид это как-то принято писать
Зацепился взгляд на нескольких моментах из видео: 1. В начале видео автор произносит C Sharp, затем называет переменную isMovement и [ЧА]рактер. Пропагандируешь англоязычное произношение - иди до конца (по мере необходимости качай английский) 2. Про класс GravityHandler ничего толком не сказал кроме "ну такоое" Там ведь куда больше замечаний (по делу) можно было добавить: Что такое вообще вектор VelocityDirection? В одном случае он константный 0.5 (и не зависит от deltaTime), в другом - к нему прибавляется "сила" умноженная на время (хотя под силой на самом деле тут имеется в виду ускорение) И почему он назван Direction. Cлово direction можно (и нужно) опустить в данном контексте, потому что под "направлением" обычно имеется в виду нормализованный вектор, тут это явно "speed" c направлением, то есть просто "velocity" 3. Про дубляж кода в свиче - не могу согласиться. Не так просто там написать недублирующийся код. Вернее как, его можно сделать более читаемым - да, но если вчитаться, там из дублирующегося - сами методы (не параметры методов) Translate и Distance. Проверки разные, знаки переменной разные, в одну функцию сложно будет вынести, а в две - так ли нужно? (Возможно, если дать им говорящие названия типа ApplyGravityWhileGrounded, ApplyGravityWhileFlying, но так ли много в этом смысла)
Если не ошибаюсь, то это не код хауди, а плагин для дрифта, который он модифицировал для подсчёта очков дрифта. Ну а комменты написал для зрителей, который ни алё в программировании. Ну и коммент с названием метода - это тоже из плагина.... зы: я не хомяк, я просто смотрел видос со звуком.
Я считаю что флаг нужно называть с is, а событие без is Считаю что так более читаемо. Хотя у вас в конвенции .NET методы пишутся с большой буквы и при чтении мы знаем что является методом, а что переменной. Но не в случае свойств. Исходя из этого, лучше добавлять Is в начале в булевого свойства
7:30 Я вот тоже подумал над изменением кода в MoveCharacter. Это хорошая практика которую я видел конечно в основном на Ruby... да не суть важно. И я согласен что лучше сделать так: public void MoveCharacter(Vector3 vector3) { if (IsStopped) return; ... } Но я также не понял смысла делать IsStopped как метод если он работает как обычная булева переменная.
Суть в том что все проверки можно завернуть в методы, для удобного чтения. Например, как вот тут : if(Vector3.Angel(...) > 0 && !IsStoped) { //другой код } завернуть в if(CanNotRotate()) return; private bool CanNotRotate() => Vector3.Angel(...) > 0 && !IsStoped; читаешь такой метод, если не может вращаться то выходим из метода, а если интересует проверка как почему, заходишь в метод и смотришь какие там проверки и условия Или как в видео было сказано, сначала проверяешь if(CanRotate()) Rotate();
Здраствуйте, Роман. Вчера на своём канале я выложил ролик с обзором кода моего проекта. Буду рад, если вы раскритикуете его в следующем видео по этой рубрике. Думаю, что ваша критика поможет мне понять свои не очевидные ошибки, которые я допустил и сам не заметил. Скорее всего, из-за моего малого опыта в разработке на юности таких ошибок найдется немало. Я к критике всегда относился положительно и считаю, что она является двигателем прогресса! Особенно она даст большой толчок, ведь я еще нахожусь на ранних этапах изучения юнити!
Помню ещё в 10 писал прям такую жирную игру на юнити, в итоге все было засрано говнокодом и я только исправил сохранения (Был BinaryConverter, стал JSON), а часть функций вообще не работала. Жалко что сурсы просрал. Называется, забыл на кнопочку Publish нажать.
Ты чем то по деятельности лев против напоминаешь я думаю если бы го...о кодеры собирались кодить в пятницу вечером в парке то ты бы рейдил их отбирая ноуты и выкидывая их в мусорку😅😂🤣
почему так написали... да потому что можем) странно, но за _variable меня часто сношали сеньеры , им эта _ не нравилась (я техарт) , до сих пор дергается глаз.
Роман, Здравствуй. Ты хейтишь Хауди Хо за плохой код. Я нашёл для тебя новый вызов. YANDERE DEV. Программист. Создаёт игру в одиночку. Работает над ней уже 7 лет. Очень популярен на западе. Хотелось бы посмотреть на то, как у тебя с него бомбанёт😂
Я python программист и могу не понять некоторые детали в C# коде, но как я понял код прикольный, но он не логичный можно было бы упростить его если посидеть над задачей ну минут 20.
У тебя же вроде полно времени, судя по тому что у тебя работы нет абсолютно, пора бы и к дерматологу сходить. А так забавное видео - "Как знать идеально код и при этом не создать ни единого достойного продукта."
"Не единого достойного продукта". В рамках того, чем занимается его мкро-студия, он делает очень неплохие с коммерческой точки зрения приложения и код для сторонних разработчиков.
@@redeboyjavacglsl724 Ты смеешься? Коммерчески успешные приложения начинаются с миллионов скачек. Курсы да, наверняка прибыльны. Но коммерчески успешных приложений у Романа точно нет, по крайней мере в том публичном аккаунте, про который я знаю.
На курсе напильник я лично провожу ревью вашего кода - ijunior.ru/napilnik?
Рома напомни, какие книги читать по языку C#?
@@MrBastards а ты точно поймёшь их, просто читая?
@@yoou6726 их я точно пойму, если они достойные
тест
А если упороться и IsMoving спарсить в int и в рассчете скорости бега или высоты прыжка всегда умножать на Int(IsMoving)?
Типо если мы двигаться не можем, то мы умножим скорость на ноль => стоим на месте, а если может ( =1 ) , то умножаем на 1 и получается что получается.
Или это больше похоже больше на костыли, чем фичу?
Нужен ли английский айтишнику?
-Чарактер
Начал смотреть этот канал неделю назад,понял ,что я ничтожество ,спасибо
Не расстраивайся, главное ты понял кто ты) 👍
P.s. А сейчас кто?
@@Makhran Сейчас я бог программирования.А если серьезно ,то за эти 11 месяцев я сильно вырос в коддинге)
@@pom01ka блин это очень круто
А сейчас как дела? 😅
ему некогда отвечать он взламывает пентагон@@GLOK7.62
После этого видео хрупкая дружба с Хауди опять рассыпется 😭
Ничего личного, просто плохой код
Спасибо за разбор! Все по делу:) Если будет ещё такая возможность, то постараюсь уделить больше времени коду и учесть косяки, в этот раз поздно узнал про данную затею с ревью, и пару вещей действительно не успел нормально почистить(свитч например ахпхаха). А пока буду учиться дальше!)
Молодец.
Удачи с каналом, желаю дальнейшего роста. У тебя получаются, действительно, годные видео для новичков
@@fgggg1463 Спасибо большое!)
@@vikkia4011 спасибо!)
@@Lipatoff1992 Согласен, тут у меня отголоски физики) Хочется разграничить понятие модуля вектора скорости и самого вектора скорости, но писать вектор вектор скорости тупо, и вот вырождается что-то подобное) На самом деле над названиями и пониманием того как кратко и исчерпывающе называть методы и поля мне надо поработать. А по поводу умножения вектора на число я знаю, просто с моей реализацией было неудобно умножать весь вектор сразу и пришлось вот так изгаляться, согласен, что не очень красиво) Но буду стараться улучшать код, спасибо за замечания и советы!
Спасибо за критику, жаль конечно что ревью было не по гитхабу, в котором инкапсуляцию я вернул, напильник куплен, жду!)
Грустно(
"Когда это handler, оно что-то handle, обрабатывает, а когда ты что-то делаешь, ты что-то делаешь" 😎
Ну у новичков вот так, у Романа тоже уверен вот так делали обзор кода когда он только начинал)
11:15 в новых версиях юнити она кеширует все объекты с тегом MainCamera и будет брать первое валидное значение из кеша. Правда, каждый раз будет вызываться геткомпонент.
Роман, нужно больше дружбы с хоуди!
Про isStoped или stoped. Это зависит от тех, кто писал код. Например, в гугловских библиотеках для java/kotlin исполбзуется is. В тех же вьюшках есть isEnabled, isFocusable и т.д. Ну и впринципе на андроид это как-то принято писать
Я вижу, Роман тоже понял, что приставка "Game Dev" прибавляет популярности:) (без шуток)
захзааз
вы лучший Роман!)
Зацепился взгляд на нескольких моментах из видео:
1. В начале видео автор произносит C Sharp, затем называет переменную isMovement и [ЧА]рактер. Пропагандируешь англоязычное произношение - иди до конца (по мере необходимости качай английский)
2. Про класс GravityHandler ничего толком не сказал кроме "ну такоое"
Там ведь куда больше замечаний (по делу) можно было добавить:
Что такое вообще вектор VelocityDirection?
В одном случае он константный 0.5 (и не зависит от deltaTime), в другом - к нему прибавляется "сила" умноженная на время (хотя под силой на самом деле тут имеется в виду ускорение)
И почему он назван Direction. Cлово direction можно (и нужно) опустить в данном контексте, потому что под "направлением" обычно имеется в виду нормализованный вектор, тут это явно "speed" c направлением, то есть просто "velocity"
3. Про дубляж кода в свиче - не могу согласиться. Не так просто там написать недублирующийся код. Вернее как, его можно сделать более читаемым - да, но если вчитаться, там из дублирующегося - сами методы (не параметры методов) Translate и Distance. Проверки разные, знаки переменной разные, в одну функцию сложно будет вынести, а в две - так ли нужно? (Возможно, если дать им говорящие названия типа ApplyGravityWhileGrounded, ApplyGravityWhileFlying, но так ли много в этом смысла)
6:00 главное, что на предлог обратил внимание, а на правописание забил: stopped с двумя p
Если не ошибаюсь, то это не код хауди, а плагин для дрифта, который он модифицировал для подсчёта очков дрифта. Ну а комменты написал для зрителей, который ни алё в программировании. Ну и коммент с названием метода - это тоже из плагина....
зы: я не хомяк, я просто смотрел видос со звуком.
хахахахах
Звучит правдоподобно но я бы не акцентировал на этом внимание если он не делал так регулярно
1:21
С третьим фанатом угар))
Я считаю что флаг нужно называть с is, а событие без is
Считаю что так более читаемо. Хотя у вас в конвенции .NET методы пишутся с большой буквы и при чтении мы знаем что является методом, а что переменной. Но не в случае свойств. Исходя из этого, лучше добавлять Is в начале в булевого свойства
9:54 я думал это у меня плеер слетел до качества 144 px, я аж дернулся пока не понял что это так задумано, подловил, красава
аналогия с кружкой до слёз! 🤣
чел который написал код на другом языке и связал по FFI:
"Never gonna give you up, never gonna let you down"
Никого не смутило, что хауди полез править код плагина?
7:30
Я вот тоже подумал над изменением кода в MoveCharacter.
Это хорошая практика которую я видел конечно в основном на Ruby... да не суть важно.
И я согласен что лучше сделать так:
public void MoveCharacter(Vector3 vector3) {
if (IsStopped) return;
...
}
Но я также не понял смысла делать IsStopped как метод если он работает как обычная булева переменная.
Суть в том что все проверки можно завернуть в методы, для удобного чтения.
Например, как вот тут :
if(Vector3.Angel(...) > 0 && !IsStoped)
{ //другой код }
завернуть в
if(CanNotRotate())
return;
private bool CanNotRotate() =>
Vector3.Angel(...) > 0 && !IsStoped;
читаешь такой метод, если не может вращаться то выходим из метода, а если интересует проверка как почему, заходишь в метод и смотришь какие там проверки и условия
Или как в видео было сказано, сначала проверяешь
if(CanRotate())
Rotate();
Челендж:
Переписать какую либо игру в одном скрипте на unity c# 😅
Это о том как не стоит делать ну вообще точно 😅
Охох. Штош - у меня много работы по рефакторингу xDD
Мы с хауди помирились и началось 14:55 :)
Ты говорил, что скинешь ссылки на их каналы. Где?
Спасибо за видео. Подскажите про курс "напильник": сколько он повремени, а то на сайте непонятно написано.
Спасибо.
Оу! Да он говорит как настоящий миссионер!
Реклама напильника вышла на новый уровень стёба.
[было весело. лукусик]
Если ваш код полон, то вы программист, иначе вы подписчик😂. Шутка про стаканы просто зашла...
Должно быть три кружки. Третья во всех остальных случаях
Привет. Ты обозреваешь только Unity проекты или прочие C# проекты тоже?
Здраствуйте, Роман. Вчера на своём канале я выложил ролик с обзором кода моего проекта. Буду рад, если вы раскритикуете его в следующем видео по этой рубрике. Думаю, что ваша критика поможет мне понять свои не очевидные ошибки, которые я допустил и сам не заметил. Скорее всего, из-за моего малого опыта в разработке на юности таких ошибок найдется немало. Я к критике всегда относился положительно и считаю, что она является двигателем прогресса! Особенно она даст большой толчок, ведь я еще нахожусь на ранних этапах изучения юнити!
Что второго участника слабо разобрал, а человек старался, записывал.
Ну ссылка на курс есть так что все в порядке)))
есть два стула SitOnFirst(false);
string result = SitOn() ? "piki" : "hui";
Public static bool SitOn() {
….
}
Остается реализовать метод SitOn и игра готова!
Вася мне друг, но истина дороже!
@rsakutin как к питону относишься?
еще как унижали и еще сильнее, например я унижал пока пытался разобраться с unity
Помню ещё в 10 писал прям такую жирную игру на юнити, в итоге все было засрано говнокодом и я только исправил сохранения (Был BinaryConverter, стал JSON), а часть функций вообще не работала.
Жалко что сурсы просрал. Называется, забыл на кнопочку Publish нажать.
А шото как бы какое-то видео про разрушение объектов будет? Ты же обещал. Мы договаривались(
Я обязательно им займусь, думаю к концу месяца выйдет
А ты берешь ревью игры сделанной на WPF ?)
Ром сделай разьеб "eccentric games" ребята продают говнокурсы по 50к, грустно(
Роман, а что у тебя за татуха на шее?
Рома хватит фигней страдать устройся уже на работу, в кефир например :))
очень много придирок, мол я вот люблю так, а оно не так, буууу
по факту весь его ревью был только +- в проверке стайлгайда.
слабенько
Подскажите пожалуйста, как может влиять на оптимизацию psx shader для unity (Или PS1 стилистика в целом) ?
Ещё пару видео с рекламой напильника, и я запишусь
Йо, умею неплохо моделить, можешь дать совет как попасть в индустрию, где искать команду и тд.тп
Ничего не понятно, но очень интересно
Ты чем то по деятельности лев против напоминаешь я думаю если бы го...о кодеры собирались кодить в пятницу вечером в парке то ты бы рейдил их отбирая ноуты и выкидывая их в мусорку😅😂🤣
Чел а где твои большие проекты ?
Сколько времени в день порекомендовал бы уделять на обучение?
23 часа в сутки
@@UltraChort чет мало
а теперь прикиньте, смотреть это видео, с 2 по матике, 3 по инглиш, геометрия-эт еще чё такое? и еще под водочку, ни.я не понял но очень интересно
сложно представить, ведь такие отбросы которые будучи тупыми школьниками еще и бухают водку это редкость
Чет ты более-менее проревьюил только первого чела, а нахалку нахально скипнул и на хауди чуть-чуть погнал
Неуж то звук подтянули!
очень полезный видос, но Чарактер уши режет и привлекает к себе слишком много внимания.
почему так написали... да потому что можем) странно, но за _variable меня часто сношали сеньеры , им эта _ не нравилась (я техарт) , до сих пор дергается глаз.
так у хауди хо класс из ассета, хотя может конкретно этот кусочек он для видео написал сам.
Посмотрел, подумал.... UE4 не так уж и плох.
Внизу экрана это вмятина??? )))
Сделай разбор кода Dani
Роман, Здравствуй. Ты хейтишь Хауди Хо за плохой код. Я нашёл для тебя новый вызов. YANDERE DEV. Программист. Создаёт игру в одиночку. Работает над ней уже 7 лет. Очень популярен на западе. Хотелось бы посмотреть на то, как у тебя с него бомбанёт😂
Уже есть видео)
обзери код канала "Лавка разработчика". Крутой чел, пишет лучше тебя
За Хабуди Хабудая посмеялся
Где видосы?)
Не прилагательное, а verb to be
12:30 забавно что rider не ругается на public поля с _
ругаться должен решарпер, он скорее всего выключен или специфически настроен.
ООО , крутяк тя разблокировали
А че нельзя дизать
На каком языке он вообще говорит, шляпа не понятная или понятно только автору ))))))))
Набор слов
Я python программист и могу не понять некоторые детали в C# коде, но как я понял код прикольный, но он не логичный можно было бы упростить его если посидеть над задачей ну минут 20.
Что на змее программируешь?
@@ДимаЛаврентьев-в7д в основном телеграм, ВК, Дискорд ботов
Питон сильно отличается от шарпа
2:10 я 4 раза послушал, но так и не понял, видимо, проблемы с английским - это крест вашей компании)
Что за наборы символов, нихера не понял, удали канал. Куча бреда и непонятных слов, слишком сложно(
У тебя же вроде полно времени, судя по тому что у тебя работы нет абсолютно, пора бы и к дерматологу сходить.
А так забавное видео - "Как знать идеально код и при этом не создать ни единого достойного продукта."
"Не единого достойного продукта".
В рамках того, чем занимается его мкро-студия, он делает очень неплохие с коммерческой точки зрения приложения и код для сторонних разработчиков.
@@redeboyjavacglsl724 Ты смеешься? Коммерчески успешные приложения начинаются с миллионов скачек. Курсы да, наверняка прибыльны. Но коммерчески успешных приложений у Романа точно нет, по крайней мере в том публичном аккаунте, про который я знаю.
Потому что игры уходят на аккаунт издателя когда у них начинаются более-менее метрики
Очередной Масон
Господи, я конечно понимаю что зависть и ненависть из тебя прям таки льется, но все-таки может хватит в каждом своем видео упоминать хауди?
if (мне понравилось видео == true)
{
Console.WriteLine("Лайк")
}
else
{
Console.WriteLine("Говно")
}
Console.WriteLine("Лайк")
P.S. Код говно