Тёмный

Как ПРАВИЛЬНО сделать передвижение в Unity? Нормали поверхностей + Чистый код на C# 

Роман Сакутин
Подписаться 285 тыс.
Просмотров 185 тыс.
50% 1

Опубликовано:

 

25 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 508   
@rsakutin
@rsakutin 3 года назад
2000 лайков под видео и делаем крутые мультяшные прыжки!
@ahehejejei37ehehheeh
@ahehejejei37ehehheeh 3 года назад
веп разработчики все говнокодеры ; там без этого навыка ни куда
@Elef228
@Elef228 3 года назад
Когда будет продолжение 2D PixelArt RPG в Unity?
@divizitin4462
@divizitin4462 3 года назад
Просто шикарный видос
@andreypan1608
@andreypan1608 3 года назад
Лучший
@-LordEK-
@-LordEK- 3 года назад
Непонимаю. Ну покритиковал, культурно указал на ошибки, недочёты, показал лучшие варианты.., но обсирать людей- то зачем)? Такой вроде, как бы не глупый, а способов повысить свой рейтинг в глазах зрителей, не обсирая конкурентов, придумать не можешь. Ну выложи что-то своё и критикуй.
@koogel2025
@koogel2025 3 года назад
С самого начала у Абрахама была тактика, получить бесплатно часть курса Ромы
@ХомичЮрий-я6ф
@ХомичЮрий-я6ф 3 года назад
ахахахахах Классс!!!
@__-qj1ux
@__-qj1ux 3 года назад
199 лайков тык 200 лайков ЫЫЫЫЫЫЫЫЫЫЫ
@ukkosta_idasta
@ukkosta_idasta 3 года назад
Переиграл
@alexwhite8040
@alexwhite8040 2 года назад
У меня была какая то тактика и я её использовал )
@alex_konor2197
@alex_konor2197 2 года назад
@@alexwhite8040 *и я ей придерживался
@DEnis_Programm
@DEnis_Programm 2 месяца назад
Как только я начал изучать японский язык, он оказался гораздо более понятным, чем это объяснение.
@ГосподинИнквизитор
"все новички поймут, что тут написано" Я, который нихрена не понял: - Ну... Ладно...
@CrazyTyan201
@CrazyTyan201 3 месяца назад
Жиза жизненная...
@ДенисКошкаров-м3в
Как по мне Хауди красавчик! Даже если он написал говно код, его ролик стал поводом для создания этого ролика. И потом всегда будет то, кто пишет код лучше, я бы не стал на этом зацикливаться. Роман, тоже молодец, ведь полезно разобрать на примере, как можно сделать лучше. Но если бы Хауди, не записывал свои видосы, я думаю намного меньше людей стали бы интересоваться программированием.
@shert3061
@shert3061 3 года назад
ООО... Вот и годнота подъехала. Согласен , новичков нужно обучать изначально правильному.
@RUMAN-r1u
@RUMAN-r1u 10 месяцев назад
как я заметил хауди отрицает ошибки и обзывается а макстер признает ошибки и всем рекомендует просмотр видео романа.уважение макстеру +10000
@hexagon4326
@hexagon4326 3 года назад
Вот это качественный контент. Сперва обосрал плохое, а потом показал как делать нужно. Прям душа радуется.
@shert3061
@shert3061 3 года назад
Согласен
@GamDevRus
@GamDevRus 3 года назад
@@shert3061 всегда можно обосрать чужой код, это любой программист с опытом знает
@mudrus9355
@mudrus9355 3 года назад
@@GamDevRus чел ты не до конца прочитал комментарий сверху
@zenbi6478
@zenbi6478 Год назад
ГАСПАРД ДА ВОТ ЖЕ ОНО! Спасибо огромное за видео. Только начал обучатся, сделал свой проект (крохотный). Очень долго изголялся над передвижением персонажа, он стопорился или и вовсе застревал при переходе на другие поверхности или при хождении по наклонных поверхностях. Пересмотрел множество гайдов но НИГДЕ нет ничего по тому, что такое нормали и как с ними работать, вот теперь моя болванка не вырывает глаза от своего дёрганого передвижения. Ещё раз спасибо. Помог на удивление чат JPT - дал название видео, но не дал ссылку...
@abik8988
@abik8988 Год назад
Ужасное объяснение, вообще ничего не понятно. Не рассказал куда цеплять эти скрипты, не рассказал как их настроить. "Любой новичок поймёт что здесь сказано" - я новичок и не понял вообще как это использовать.
@ZickJohnson
@ZickJohnson 3 года назад
Вау, даже картинки к объяснению прилагать начал. Спасибо за проделанную работу.
@nmotion55
@nmotion55 2 года назад
Реально Бро, чтоб это понять, надо сначала понять это все хотя бы на уровне хауди-хо.
@amogus330
@amogus330 2 года назад
Согласен, если слишком туп для этого
@ДмитрийВолков-н8е
@ДмитрийВолков-н8е 2 года назад
Отлично работает код. СУПЕР отлично. 200 настроек уровня, 400 дополнительных настроек кода, и теоретически, он будет работать. ТЕОРЕТИЧЕСКИ. Удачи споткнутся об любую поверхность с коллайдером, на которой вам не надо передвигаться.
@itayra2133
@itayra2133 Год назад
ХаудиХо сделал видео для новичков, где всё просто и понятно. А тут куча сложных и во многом не нужных новичку манипуляций. Например, зачем новичку вычислять нормали, векторы и т.д, если можно просто написать AddForce. Это тоже самое, что говорить "Велосипед - это гавнотранспорт, есть же машина".
@mikoma4077
@mikoma4077 2 года назад
В первые 10 секунд видео я осознал что ты мой мессия и в скором времени я создам культ поклонения тебе.
@НиколайМартынов-р2е
В целом согласен в предложенном варианте код лучше . Но подозреваю что оппонент возможно намерено сделал код через адфорс дабы продемонстрировать новичкам физику движка. п.с. Обьяснения у Хауди зашло на ура , тут же пересмотрел ролик раза 3 , прежде чем догнать суть о нормалях и скалярном произведении векторов. Хотя повторюсь предложенный Романом вариант кода лучше.
@epiccipe
@epiccipe 2 года назад
Просто Хауди хочет показать быстрый вариант решения без особых затрат времени, он не учит программировать так, как нужно, он завлекает в этот процесс, а дальше уже самому можно пойти разобраться в более качественном решении проблемы. Если честно я реально уважаю Хауди Хо, потому что он привлёк множество подростков (да и не только), к IT сфере, благодаря ему я сейчас активно изучаю Unity и пусть сейчас я и не нуждаюсь в просмотре его видео, я считаю, что он умеет интересно подать материал, пусть и самым простым и иногда плохим способом
@zeroQuantumNull
@zeroQuantumNull Год назад
@@epiccipe уважения хауди не достоин, но должное ему отдать можно. У него чисто попсовый развлекательный контент, а слово "профессионал" в названиях видосов не более чем шутка. Но если назвался профи, так будь добр лезь в кузов. Ладно бы это, но он ещё к тому же даёт советы в тех областях, где не шарит вовсе, а где он вообще шарит? Чисто на отьебон видос сделал и норм, а человек потом будет мучаться, штудировать от корки до корки шилдта, так и застряв на базовом уровне, дай боже чтобы не забросил, но скорее всего тупо выгорит. А так особых претензий не имею, пусть делает что хочет, лишь бы не вредил.
@dunybollox804
@dunybollox804 Год назад
​​@@zeroQuantumNullЧел сейчас много людей становятся программистами смотря хауди потаму что он мотивирует людей он две когда просто видосы делает всё там разжёвывает потаму что знает что его в основном смотрят подростки которые тоже хотят стать прогером и за такую матевацию а не простите просто рекламу ему огромный респект
@dunybollox804
@dunybollox804 Год назад
​@@zeroQuantumNull Роман да лучше чем хауди в гейм деве потаму что у Романа больше 10 лет опыта и работы в гейм деве а хауди чтобы ты понимал только 7 лет занимаеться программированием и всё ещё учиться и то эти 7 лет он не задротит лишь в гейм дев
@subdmndline
@subdmndline 10 месяцев назад
@@dunybollox804бро, тебе на урок русского пора 💀💀
@ОлегНахаев-у7с
@ОлегНахаев-у7с 3 года назад
Не сторонник хауди и даже не смотрел его видео на час, но твой обзор чекнул. Придрался ко всему, к чему только можно, но при этом сам делаешь не очень: 1) Не убрал не использованные директивы 2) Присутствие магических чисел 3) Почему не сократил методы, состоящие из 1 строчки через лямбду? Глаза режет. По поводу правильности, да, этот подход к движению мне больше симпатичен, но он заставляет задуматься да и не хило. А видео было предназначено для новичков. Какой смысл новичку смотреть и думать о нормалях, когда уже есть метод AddForce? Да и по поводу твоего курса, реально везде его суешь, хотя имеешь на это полное право, но ты даже поленился объяснить про скалярное произведение векторов, а взял старое видео, красавчик. Короче, был лучшего о тебе мнения
@jiulh
@jiulh 3 года назад
"Не убрал не использованные директивы" - это что-то типа мема на данном канале, из-за того что он забывает про это?
@m.r.pengvin4901
@m.r.pengvin4901 5 месяцев назад
он сам при каждом обзоре чужого когда жалуется на это у других
@artemfost6836
@artemfost6836 3 года назад
Хм, видео называется "как правильно", а с чего ты взял что так правильно? Это верно только для случая когда ты у себя в голове сформировал ТЗ и решил для себя что физика тебе не нужна, буду просто двигать тело без учетов трения и прочих штук, опять же, возникает вопрос "А С ЧЕГО ТЫ ВЗЯЛ ЧТО ЭТО ПРАВИЛЬНО?" и почему это правильнее чем вариант с AddForce()? Просто потому что ты так видишь игру у себя в голове? Охеренный подход, я тоже могу взять тетрис, сказать что в нем не учитывается физика тел и показать как "правильно" его реализовать
@tivjnb
@tivjnb 2 года назад
либо я тупой либо скрипт имеет пару проблем: 1) кубик намертво липнет к отвесной стене(двигается вдоль неё до столкновения с другим коллайдером) 2) дергано пытается забраться на почти отвесные стены 3) проваливается под землю когда попадает под наклоненную стену
@tivjnb
@tivjnb 2 года назад
PS рома все равно молодец, вероятно именно я тупой, а хауди тот ещё дибил
@philipinhoi8091
@philipinhoi8091 3 года назад
Главное чтобы Ромчик думал что он отличается от хауди)
@АлександрКарпов-ъ1я
Привет А почему обновление физики не в FixedUpdate ? Если частота кадров больше, чем частота обсчёта физики, то либо будут лишние вычисления либо… рывки?
@ИванДовлатов-х3ж
@ИванДовлатов-х3ж 6 месяцев назад
Тот же вопрос, кстати
@fillion6288
@fillion6288 2 месяца назад
Это математика, не физика. По такой схеме происходить рывков не должно
@romancynic8688
@romancynic8688 3 года назад
Хауди Хо: Ну обосрался и обосрался, чего бубнить то?👍
@AlexNaz-OF
@AlexNaz-OF 3 года назад
Просто хайп манит
@darudev
@darudev 3 года назад
Стой стой стой, ты забыл вот это #ОтПрофессионала Не благодари ;)
@mistake7855
@mistake7855 3 года назад
Я - инфо-цыган и продаю курсы... кстати, записывайтесь
@sergeykadantsev9217
@sergeykadantsev9217 2 года назад
Есть такой момент, если двигать объект с rigitbody через translate, то будут просадки в производительности, так как движек будет постоянно просчитывать физику при изменении translate.
@Eistrp
@Eistrp 3 года назад
а почему не использовать character controller? в нем же уже все это просчитано
@SkyGround-mj9tf
@SkyGround-mj9tf 2 года назад
эти видосы я так понимаю что бы хауди научился программировать и заснял ремейк 1 час изучаем юнити от профессионала
@tapa_5642
@tapa_5642 3 года назад
Только при просмотре этого ролика в голову закралась мысль о том, что стоит объяснить почему и для чего делаются классы, содержащие один метод. Я сейчас учусь в университете, косвенно изучаем программирование, но есть ребята, которые всерьёз хотят видеть себя в этой науке. А поскольку мои навыки куда выше навыков этих ребят, они частенько спрашивают совета у меня. Людям, которые только начинают изучать программирование очень сложно понять все концепты методик SOLID и им подобных. К примеру, была задача: разпихать данные по разным файлам, алгоритм записи в файл один, а пути к файлам разные. Я решил сделать следующее - Выставить несколько публичных методов, в которых в метод для работы с файлом передавался уже заготовленный путь константой, дабы не писать путь в мейне каждый раз через строковые литералы. (Надеюсь, хоть что-то тут было понятно) Итог - никто не понял, зачем это нужно, все говорили, что в мейне проще и быстрее, и вся программа видна на одном экране, и много чего ещё. Я это к тому, что многие новички, особенно те, которые учат программирование не на специализированных курсах с кучей практики, а на ютубе, или в университете не видят задач объёмом кода более, чем на один экран. А те, кто знает про SRP, видят его лишь как разделение большого метода на несколько маленьких, а в рамках класса или выше не смотрят. Да, я просто хочу, чтобы автор сделал ролик, который я смогу пересылать тем, кто пытается понять, зачем столько разделений вместо того, чтобы объяснять каждому отдельно. Та и, как мне кажется, многие люди, которые смотрят как на этом канале поливают говном код их любимых "сеньоров", таки поддержат аргумент "это всё для простоты, а ты вон сколько интерфейсов для одного метода нафигачил, а потом иди разбирайся с этим", если им не сказать, что, как и для чего P.S.: Сори за огромное количество воды, но рефакторить этот текст я уже не хочу(
@metalkefir591
@metalkefir591 Год назад
У вас очень плохой вуз, у нас средняя лаба была на пару тысяч строк кода и далеко не один файл.
@fada9238
@fada9238 11 месяцев назад
Чёта я попробовал переписать код из видео, дабы поиграться, а он не робит у меня :) Сначала ругается на KeyboardInput в строке 16 с исключением NullReferenceException - добавляю в Movement любого рода "заглушку" Начинает ругаться на 13 строку в PhysicsMovement в строке 13 с исключением NullReferenceException. Вряд ли мой коммент заметят, но я даже предположить не могу - что я сделал не так? :)
@igorshlyakov9321
@igorshlyakov9321 3 года назад
Все супер ждем видос с прыжками!
@olil2489
@olil2489 Год назад
А почему бы вместо метода Project было не использовать стандартный Vector3.OrthoNormalize? Считаю, что так было бы гораздо нагляднее
@terachannel1154
@terachannel1154 3 месяца назад
Я тебе больше скажу, есть метод ProjectOnPlane, который как раз возвращает вектор вдоль поверхности, ему нужен вектор направления и вектор нормали поверхности
@fantraiFox
@fantraiFox 6 месяцев назад
Один инфоцыган бьет другого инфоцигына. Эта битва будет легендарной
@communism8037
@communism8037 2 года назад
Как у новичка мозг конечно очень тяжело воспринимает это видео, сразу куча различного кода, части которого не ясны соверщенно. И сразу из каши начинать пытаться вникать. Уххх. Ну хоть основная мысль ясна xd Это видео явно не для новичков :( upd: но справедливости ради если пересмотреть по второму разу и прогуглить каждое непонятное понятие в коде, то будет всё понятно. upd2: а чо не поворачиваешь куб, чтобы он и визуально нормально двигался по поверхности?
@FOX3490-z7u
@FOX3490-z7u 3 года назад
Для такой херни не лучше ли character controller встроенный использовать? Будет гораздо проще
@zevs1373
@zevs1373 2 года назад
Нашел один баг в данном решении, когда происходит столкновение со "стеной" в векторе нормали по одной из координат x или z принимает отрицательное значение, в следствии чего блокируется движении в противоположном направлении, разрешается движении только вдоль плоскости. при столкновении с наклонной поверхностью отрицательное значение сбрасывается в 0 и движение вновь доступно.
@sushkahacker9762
@sushkahacker9762 2 года назад
в SurfaceSlider надо поменять private void OnCollisionEnter(Collision cln){ _normal = cln.contacts[0].normal; } на private void OnCollisionStay(Collision cln){ _normal = cln.contacts[0].normal; } Этот баг происходит, когда игрок сталкивается с 2 коллизиями. Когда это происходит, то игрок считывает столкновение с последней поверхностью и "забывает" первую, то есть землю. А OnCollisionStay считывает не то, с какой поверхностью мы столкнулись, а стоим ли мы вообще. Минус - это то, что в прыжке мы теряем скорость. Надеюсь норм объяснил.
@outhander3941
@outhander3941 3 года назад
в своём ответе хаудихуцй сначала такой "роман - агрессор и токсик", а буквально 5 строчек спустя "ну я же не программист и этим не занимаюсь"
@vor_pobed6108
@vor_pobed6108 3 года назад
Извините, сударь, можете указать, где он конкретно это сказал?
@outhander3941
@outhander3941 3 года назад
@@vor_pobed6108 это я очень сильно утрировал, поэтому ты найти не можешь
@OkaToka
@OkaToka 2 года назад
После просмотра этого видео я понял почему в туторах для новичков показывают метод с физикой.
@vld7395
@vld7395 2 года назад
Физика очень важна
@OkaToka
@OkaToka 2 года назад
@@vld7395 да просто ничерта не понятно новичку в методе, описанном в этом видео. Невозможно такой материал объяснить начинающему, чтобы он реально понял, что он делает и как это работает.
@Daniel-mo1iy
@Daniel-mo1iy 2 года назад
@@OkaToka ну логично, к этому нужно идти постепенно. Это как новичку объяснять про pool в обертках, не объяснив про ссылочные типы данных )) никто ниче не поймёт :)
@vlader776
@vlader776 4 месяца назад
@@OkaTokaесли человек проходил в универе векторную алгебру и физику, то ему точно будет понятно
@Fturman
@Fturman 5 месяцев назад
Есть в интернете хоть один гайд, где есть полная разработка с нуля. Т.е создание персонажа, добавление его в движок, анимация, добавление физ свойств и т.д, проработка всех мезаник как пример и затем уде создание Грэй бокса, что бы затестить усе это дело. Где такое найти..
@vmavlyanov
@vmavlyanov 3 года назад
Как всегда, четко!
@L0g0Z0g0
@L0g0Z0g0 2 года назад
А что в скрипте Axis? (Юнити выдает ошибку на отсутствие имени...)
@ivanaksenov2829
@ivanaksenov2829 3 года назад
Сделай обзор на metanit
@nikitas3160
@nikitas3160 3 года назад
Почему на фрагменте курса такой шум? Неужели так во всем курсе?
@maksonix722
@maksonix722 Год назад
ну Абрахам получается всех переиграл - не знал как правильно сделать, сделал неправильно, придал огласке, и нашелся таки добрый и неравнодушный человек, что объяснил как правильно. И получается бесплатный урок. Современные проблемы...
@Георгий-ъ8б9ж
@Георгий-ъ8б9ж 3 года назад
Ну так себе реализация. Почему KeyboardInput еще объект двигает, разве это его задача, с чего он вообще об этом должен знать? Почему не используется райкаст вниз, лень проверять, но OncollisionEnter выглядит ненадежно и больше как какой-то костыль.
@yanmandev
@yanmandev 3 года назад
Ждем следующий видос
@valentyn4367
@valentyn4367 2 года назад
вот такого контента побольше бы
@terachannel1154
@terachannel1154 3 месяца назад
А почему бы не использовать метод ProjectOnPlane, который как раз возвращает вектор вдоль поверхности, который принимает вектор направления и вектор нормали поверхности?
@k4rnageee
@k4rnageee 2 месяца назад
Я кстати этого вообще не понял. Вектор нормали плоскости по идее - это вектор up обьекта. Соответственно, вектор forward обьекта и будет единичным вектором скольжения по плоскости. Зачем тогда все эти расчеты? Или в юнити нет возможности получить локальные оси обьекта, как в анриле?
@SblPPP0K
@SblPPP0K 2 года назад
код простой.... я который уже 20 раз пересматриваю чтоб хоть что-то понять, и сопоставить с речью автора...
@markusnotfound3007
@markusnotfound3007 Год назад
Пока ты сам не будешь кодить на практике в вижуал студио, юнити на языке c# ты никогда не поймешь что они кодят.
@orange_wanna_sleep
@orange_wanna_sleep 3 года назад
Кстати небезызвестный Brackeys тоже использовал add force для перемещения
@mishQasim
@mishQasim 3 года назад
Помогите разобраться плз. Искомый вектор "projected forward fp" мы находим как разность двух векторов "Player Forward f" и вектора, который является проекцией вектора "Player Forward f" на вектор нормали, тобишь "component parallel to n" "Player Forward f" у нас есть (в коде forward) а вектор проекции мы находим как Vector3.Dot(forward, _normal)*_normal. Такая формула из-за того что вектора уже нормализованные, иначе пришлось бы делить скалярное произведение векторов Vector3.Dot(forward, _normal) на длинну вектора _normal еще (потому что длинна проекции равна forward * cos(угол между forward и normal)). Всё так? Когда дописал сообщение, уже потратил 2ч. на то чтобы разобраться, мб кому то поможет *facepalm*
@wowyomad
@wowyomad 8 месяцев назад
Со схожим вопросом полез в комментарии :( Жаль что не не помогли.
@nekodgd
@nekodgd 3 года назад
Очень крутое видео получилось! Хотелось-бы побольше подобного контента, где показывается как не надо делать и твоё решение этой проблемы. Это реально, очень полезно!
@EugeniiShernovitskiu
@EugeniiShernovitskiu 11 месяцев назад
Видимо про класс "Axis" все забыли....
@z1chemerr
@z1chemerr 6 месяцев назад
Да я сидел писал потом расстроился
@vlader776
@vlader776 4 месяца назад
Axis - это просто статический класс с константными строками public static class Axis { public static const string Horizontal = nameof(Horizontal); public static const string Vertical = nameof(Vertical); }
@Ninada_O_o
@Ninada_O_o 3 года назад
После столкновения с поверхностью 90 градусов могу двигаться только в доль этой поверхности)
@vovan_na_kyhne
@vovan_na_kyhne Год назад
А еще если угол больше 90 градусов, то ты проваливаешься под землю) попробовал исправить это через ограничения максимального угла наклона поверхности при получении нормали при столкновении, но получил проблему что ты начинаешь проходить сквозь поверхности их-за того что используется _rb.position =\ Если будет вариант решения проблемы пните пожалуйста. Метод перемещения через нормали мне нравится в результате больше чем обычное физическое, но с такими нюансами придется думать и искать другой метод.
@mrlimen9709
@mrlimen9709 6 месяцев назад
вы как 2 электрика, те тоже хейтят работу друг друга, ну я думаю кто постарше, имел дело с электриками, знает о чем я пишу ) А терь немного запоздалого на 2 года монолога. Хз на кой я это вообще пишу, делать нехрен. Не спорю, да, хреновый код, на тот момент, однако, если чуток посматривать за творчеством хауди, то в то время как раз он только начал изучать unity как место для разработки каких-то идей. Возможно было лишним так рано записывать урок, однако же, он так или иначе сам разобрался позднее и написал так кили иначе много годного. Взять того же 3д дино или что он там ещё делал. Ютуберы ведут свое шоу (общая масса), это их работа. Хоть ролик не про профессиональное программирование, но будем честны, даже он полезен. Есть "кодеры" куда хуже, ну да ладно. И да, вероятно этот комментарий никто даже не прочитает, но почему бы нет. ))
@abduvorisislamov
@abduvorisislamov Год назад
слыш тебе какая разница что там у хауди хо вообще даже если ты считаешь то что у него неправильно то тогда почему у него больше подписчиков и вообще не лезь к другим...
@kommiraikoni
@kommiraikoni 3 года назад
Сложно говорить что то о хауди, начинал давным давно с него, но понимаю что благодаря той простате я сам начал интересоваться программированием, и соответственно разбираться тоже сам. Поэтому вряд ли стоит так критично относится к нему, все же это не платные годовые курсы "отскиллбокса", а бесплатное видео в общедоступном формате, и если говорить о грамотности написания кода-у каждого своя колокольня, и если уж хочешь разобраться в Unity-вперед читать литературу) а видео неплохое очень даже, видно что человек в курсе своих действий, и, как говорит мой хороший друг, "умеет читать то что пишет")
@Avgureee
@Avgureee Год назад
потом люди делают код уровня Yandere Simulator))0)
@Даниелкушбаев
@Даниелкушбаев 4 месяца назад
у меня баг: про косании с объёктом кубик перестает двигатся по одной из горизонталей
@onecommandkristopher3000
@onecommandkristopher3000 3 года назад
Жду обзор кода C# Романа Сакутина от Романа Сакутина, а-то не понимаю кому верить в данном вопросе - Роману Сакутину или Роману Сакутину.
@neaf1sss
@neaf1sss 2 года назад
Я украл твою шутку
@yakonick
@yakonick 3 года назад
В последнем примере (14:41 или в этом роде) подход неправильный же. Судя по тому, что нормаль (0.5, 0.5), угол между склоном и поверхностью 135 градусов (3 пи / 4). Соответственно, звездочка должна двигаться в том же направлении (вдоль поверхности же). Но результат этой сверх математики (итоговое направление движения (F - N)) не соответствует этому углу. Или я чего-то не понимаю? Я просто под пивом
@yakonick
@yakonick 3 года назад
А так, видос очень даже понравился
@rsakutin
@rsakutin 3 года назад
Я там просто вектора неправильно записал
@yakonick
@yakonick 3 года назад
@@rsakutin ну да, вектор нормали нормированный же должен быть, не сразу вспомнил. Не (0.5, 0.5), а (1 / sqrt(2), 1 / sqrt(2)). Тогда всё сходится Спасибо, что обратил внимание!)
@taylonmcfly
@taylonmcfly 2 года назад
@@rsakutin говнокод! Над английский учить там и срача нема и инфоцыганов
@taylonmcfly
@taylonmcfly 2 года назад
@@rsakutin кстати ты кажется удаляешь комментарий число комментариев ошибочное от оригинала то есть если посчитать вообщем сколько комментариев то их больше чем на счётчике комментариев
@dmitriyobidin6049
@dmitriyobidin6049 3 года назад
А надо ли еще сам объект развернуть на угол = 180 - ∠D^F ? Чтобы объект тоже находился под нужным углом к поверхности?
@basvalan
@basvalan 3 года назад
Тогда предыдущие вычисления пойдут по пизде.
@adekakz9794
@adekakz9794 Год назад
тогда должен сам разработать формулу движения
@maximgasai1349
@maximgasai1349 3 года назад
Ради господа бога перестань читать английские слова, имитируя английское произношение. Ты мало того, что неправильно произносишь некоторые слова, так еще и жуешь их так, что вообще непонятно, что ты прочитал, видимо, чтобы никто и не услышал ошибок. Читай ты их с обычным рязанским акцентом, будет проще и тебе, и людям
@FadeToEvil
@FadeToEvil Год назад
Да, это бесит
@xztreme
@xztreme Год назад
Чел он все нормально произносит, это непривычно, потому что он в основном на русском говорит, к тому же у него акцент
@EugeniiShernovitskiu
@EugeniiShernovitskiu 4 месяца назад
​@@FadeToEvilу него просто прокачанное английское произношение ;) тебе не понять
@FadeToEvil
@FadeToEvil 4 месяца назад
@@EugeniiShernovitskiu нет, конечно, не понять. Я же не общаюсь на работе только на английском вот уже 10 лет как. Так жуют только коренные англичане, хочется сказать: выплюнь каку и разговаривай нормально!
@thedoctor5753
@thedoctor5753 3 года назад
Как говорил известный персонаж - J.P. :"Sience beach!"
@pro100deskree
@pro100deskree 3 года назад
То самое чувство когда ХаудиХо забайтил тебя на видео урок :DDD
@AziDrim
@AziDrim 2 года назад
Извиняюсь за возможно гупую просьбу, но можете мне помочь, что означает ошибка "Axis does not containt a definition for Horizontal", то же самое с вертикал. Я переписал код точь в точь, точно нет никаких ошибок в словах и эта ошибка. Прошу помочь, пожалуйста!
@MrVoronaExtra
@MrVoronaExtra Год назад
Там есть отдельный скрипт Axis.cs В нём пишешь: public class Axis : MonoBehaviour { public static string Horizontal = "Horizontal"; public static string Vertical = "Vertical"; }
@ВладиславЯндульский
Как вектора D(-0,75;0,25) и N(-0,25;-0,25) перпендикулярны? Если скалярное произвидение не равняется нулю? А это у нас получается истинный вектор движения игрока который поидеи должен быть паралелен плоскости и перпендикулярен нормали, но как не крути не получается, чтобы он был перпендикулярен по этой формуле.
@ShadVert
@ShadVert 2 года назад
А что если пишет ошибку "The class script cannot be found"? (p.s. раньше у меня такого не было а в инете не понятно как это исправить ведь показывают как исправить в старых версиях а мне надо в версии 2019)
@gotthard24
@gotthard24 3 года назад
Вот это я понимаю контент. Красава. В таких видосах видна экспертность. А от видосов в стиле "Тут мудак, тут говнокод" противно.
@amogus330
@amogus330 2 года назад
Не знаю, как по мне довольно сложно. Не мой уровень
@notagriffer007
@notagriffer007 3 года назад
Если ты прав, но все говорят, что ты не прав, ты не безумец!
@GDisclaimer
@GDisclaimer 3 года назад
Чта? Пж можно попонятней?
@kekwait7959
@kekwait7959 3 года назад
Про вставку с математикой - вообще-то в школе вектором единичной длины был (1/sqrt(2);1/sqrt(2)), тк там метрика это корень из сумм квадратов (евклидовая). У тебя же метрика - сумма модулей. Ну и косинус очевидно у тебя неевликлидовым будет. В курсе было бы неплохо это разъяснить, а то челы будут каждый раз в квадраты возводить да корни извлекать
@turalaliyev1764
@turalaliyev1764 Год назад
Правильно ли вызывать метод Move в Update а не Fixed Update? Учитывая что там rigidbody.MovePosition() ?
@enzis
@enzis Год назад
при фпс >100 будет выглядеть криво то что перемещение в 100 фпс
@danielluko7635
@danielluko7635 2 года назад
а почему нельзя силу просто применить к локальным координатам куба? На официальном сайте Unity learn перемещения делают точно также, неужели это ошибка?
@Atomnyi
@Atomnyi Год назад
ничего не понятно - замечательный код! Замечательное обьяснение... А нет - отвратительный код, ничего не понятно из обьяснений. В общем то китайский гораздо понятнее, чем все что сделал автор. В итоге, Хауди Хо сделал видео действительно для новичков, которое является и понятным, и мотивирующим. Данный же критик сделал полную тарабарщину с точки зрения новичков. О чем он говорит, что он пишет? А х-р знает. Пропускаем видео мимо.
@gamemoments8183
@gamemoments8183 3 года назад
я новичок вопрос : а почему нельзя просто писать : transform.Translate(Vector3.forward * Speed * Time.deltaTime);
@ИгорьМорозов-ы2ы
@ИгорьМорозов-ы2ы 3 года назад
Пока для твоей игры это не создаёт проблем - можешь писать. Когда задача сложнее, как в видео, уже приходиться по другому подходить.
@yargee11
@yargee11 3 года назад
если перемещение без физики, то можно, а если с физикой, то могут возникать проблемы при коллизиях, типа застревания в объекте или проходе через стены, по сути это не движение а телепорт в координату
@Phyksar
@Phyksar 3 года назад
Конкретно по твоему вопросу, transform.Translate меняет положение объекта не учитывая возможных столкновений с твердыми объектами, т.е. аналогично телепортации. Для определения столкновений необязательно использовать полную физическую симуляцию, можно предварительно вызывать Physics.Boxcast (или любая другая форма) или Rigidbody.SweepTest (учитывает активную модель столкновений)
@gregorygorbov4669
@gregorygorbov4669 2 года назад
4:19 Я извиняюсь, это что вектор нормали к поверхности, который лежит на поверхности??
@batpyiiikob7245
@batpyiiikob7245 3 года назад
Так почему куб на наклонной поверхности не меняет угол наклона относительно нормали?
@ProfessorProkopski
@ProfessorProkopski 2 года назад
Присоединяюсь к вопросу. Иначе толку от такой реализации...
@NickProkhorenko
@NickProkhorenko 2 года назад
Это можно сделать используя кватернионы юнити. Мне вот, к примеру, он понадобились, когда я делал ходьбу персонажа по сферической планете, и его нужно было поворачивать.
@batpyiiikob7245
@batpyiiikob7245 2 года назад
@@NickProkhorenko я знаю, что можно.. вопрос - почему здесь не сделано, но преподносится как верное решение! Получается - обосрался не только ХаудиХо но и Роман Сакутин
@ua1024
@ua1024 Год назад
@@batpyiiikob7245 Ты просто не выкупаешь ничего
@panarth1142
@panarth1142 2 года назад
Всегда говнокод пишу и не жалуюсь. И передвижение физикой делаю, так объект живее себя ведёт, путь торможения и разгона есть
@icu4
@icu4 3 года назад
Погнали данный формат на постоянку канала
@winrar3818
@winrar3818 3 года назад
ждем ответочку)
@Anxolaos
@Anxolaos 3 года назад
не ты конечно профессионал, столько тут про нормаль расказывал... а сделал что бы кубик на ребре по горке ехал а не на грани... халтура получается ))
@kaka9ipazhu672
@kaka9ipazhu672 3 года назад
На самом деле всё хорошо, я использовал этот код и кубик нормально едет на грани.
@nosoroshek2392
@nosoroshek2392 3 года назад
Надо отключить фриз поворотов по осям
@rumpelstilzchen6366
@rumpelstilzchen6366 2 года назад
Самый действенный аргумент - "Ой, вот только давай без (пассивной)агрессии!"
@imronneiz4794
@imronneiz4794 3 года назад
Еееее наконец-то
@toxin569
@toxin569 Год назад
код не роботает👿
@bf1005
@bf1005 3 года назад
В примере со звездочкой расчеты странные, что это за вектор получился -0.75, 0.25 ? Вычитать не нормализованный вектор -0.25, -0.25 из нормализованного? Возможно результат операции * нормализованный вектор?
@devoltres7246
@devoltres7246 2 года назад
у меня проблема:когда персонаж прислоняется к бокс колайдеру-он перестает ходить по горизонтали. подскажите, что делать.
@motyamiracle9788
@motyamiracle9788 Год назад
Все скрипты нужно привязывать к Player или нет? У меня ошибку выдает NullReferenceException: Object reference not set to an instance of an object KeyboardInput.Update () (at Assets/Scripts/KeyboardInput.cs:14). Вроде как переписал точь в точь, но почему то мой объект не хочет двигаться
@MrVoronaExtra
@MrVoronaExtra Год назад
Так назначь в инспекторе во всех незаполненных полях объект игрока (тупа перетащи объект в поле) и назначь скорость
@retusu4666
@retusu4666 3 года назад
прикольно
@MrToga94
@MrToga94 3 года назад
было бы отличный идея сделать гавнокод для симулятора гавно и срать на адекватный расширения и настраивность и на конце игры рейд босс сам Роман Саукутин. ради развличению наверно )) Челлендж началось! ПС: видос норм, один лайк от меня!
@it-world6814
@it-world6814 3 года назад
Сколько раз ты переписывал код перед роликом?
@lloyd7270
@lloyd7270 2 года назад
using UnityEngine; using System.Linq; public class SurfaceSlider : MonoBehaviour { private Vector3 _normal; public Vector3 Project(Vector3 forward) { return forward - Vector3.Dot(forward, _normal) * _normal; } private void OnCollisionEnter(Collision collision) { _normal = collision.contacts[0].normal; } private void OnDrawGizmos() { Gizmos.color = Color.white; Gizmos.DrawLine(transform.position, transform.position + _normal * 3); Gizmos.color = Color.red; Gizmos.DrawLine(transform.position, transform.position + Project(transform.forward)); } } using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class PhysicsMovement : MonoBehaviour { [SerializeField] private Rigidbody _rigidbody; [SerializeField] private SurfaceSlider _surfaceSlider; [SerializeField] private float _speed; public void Move(Vector3 direction) { Vector3 directionAlongSurface = _surfaceSlider.Project(direction.normalized); Vector3 offset = directionAlongSurface * (_speed * Time.deltaTime); _rigidbody.MovePosition(_rigidbody.position + offset); } }
@lordorbit
@lordorbit 3 года назад
Он должен тебя пропиарить. Он сказал, что если кто-то сделает лучше, он его пропиарит, могу пруфы скинуть
@nekodgd
@nekodgd 3 года назад
Какие люди! ;)
@lordorbit
@lordorbit 3 года назад
@@nekodgd и тебе привет)
@rechw769
@rechw769 3 года назад
хауди пишет так только на видео, так как вне видео он не пишет на с# вовсе:_
@seregga3936
@seregga3936 3 года назад
А на чем он пишет вне видео?
@rechw769
@rechw769 3 года назад
@@seregga3936 он веб-разработчик вроде
@MrDarts-ff6jq
@MrDarts-ff6jq 3 года назад
А зачем он тогда делает уроки по C#, если вне видио он на нем не пишет?
@rechw769
@rechw769 3 года назад
@@MrDarts-ff6jq откуда ж мне знать?)
@semyondyachenko4183
@semyondyachenko4183 3 года назад
То, что было в его видео, показывают не то, что он не умеет писать на c#, а то, что он впринципе в школе не учился, т.к он при взаимодействии с физическими объектами, где все работает по строгим законам и формулам, говорит давайте по-экспериментируем, и просто начинает вбивать рандомные значения, даже не понимая зачем они, и на что влияет их изменение.
@mynamearch
@mynamearch 3 года назад
Это что, Фредгитарист от мира программирования?
@noitoro2698
@noitoro2698 3 года назад
лол, а ведь и правда
@degit
@degit 2 года назад
Я один не понимаю по названию метода Project что он должен делать? И это хороший нэминг?
@claudiff5581
@claudiff5581 2 года назад
Это не его метод, гений
@nikolaiii3
@nikolaiii3 2 года назад
У меня ктрл-шифт не работает. Причем давно читал об этом в документации, но тогда не работало, и сейчас не сработало.
@kolua8683
@kolua8683 2 месяца назад
Ты топ!!!!
@blindnoob8653
@blindnoob8653 2 года назад
спасибо за ролик
@ndavihwo5186
@ndavihwo5186 Год назад
привет ,код на C#?
@Владислав-н8е1ч
Нет, на залупе нарисован.
@ndavihwo5186
@ndavihwo5186 Год назад
@@Владислав-н8е1ч вот видишь не зря спросил ,а то бы щас на C# пытался.
@padoru_padoru_padoru
@padoru_padoru_padoru 3 года назад
А если пройти ваш курс бесплатно в гугле, то меня к вам устроют в компанию?
@sergzach
@sergzach Год назад
На чем делать-то, если Windows в России заблокирован? На Маке?
@ГеоргийБелик-н6ъ
@ГеоргийБелик-н6ъ 2 года назад
было бы неплохо показать к какому объекту какой код и axis тоже
@sushkahacker9762
@sushkahacker9762 2 года назад
А смысл? Не понятно что все нужно на игрока вешать? И Axis.cs тоже из-за двух строк показывать смысла нет. Но если все же не понял, то вот: public class Axis { public static string Horizontal = "Horizontal"; public static string Vertical = "Vertical"; } Это весь код :/
Далее
When Players Sacrifice for Team ❤️
00:32
Просмотров 9 млн
Свожу все свои тату (abricoss_a_tyt)
00:35
НЕЙРОСЕТЬ УНИЧТОЖИЛА ДЖУНА
31:47
When Players Sacrifice for Team ❤️
00:32
Просмотров 9 млн