Физика в Unity - 9. Raycast
Вставка
- Опубліковано 19 тра 2020
- cloud.mail.ru/public/5KSW/5Jq... - скрипт для перемещения камеры
Следующий урок - • Физика в Unity - 10. J...
Этот урок - часть курса по основам физики в Unity.
В курсе я постарался максимально подробно изложить все, что знаю по этой теме.
Меня зовут Илья Карельцев вот мой vk( ilya19). Занимаюсь разработкой игр с 2012 года.
На этом канале делюсь опытом по программированию и 3D Lowpoly моделированию.
Я провожу курсы и онлайн-консультации по Unity.
Даже спустя четыре года после выхода видео до сих пор обращаюсь к нему! Спасибо, человек!
Спасибо за НАГЛЯДНОЕ объяснение материала, как и что работает, особенно за визуализацию в Фотошопе. Также за примеры использования. От слов всех новичков скажу: "Спасибо, что учишь пользоваться ДОКУМЕНТАЦИЕЙ UNITY".
Ты быканул или мне показалось?
@@user-cb5lu4rx7x Мне тоже показалось
@@4orniy468 И в чем выражается эта быковатость? Человек поделился эмоциями, а через текст их передать трудно, поэтому воспользовался капсом. Автор действительно топовый и доходчиво объясняет материал и сразу учит писать грамотный код и поясняет, почему он работает именно так, подкрепляя свои слова документацией. Разве нет?
@@Cherviblo просто пока не посмотрел само видео, возникает такое ощущение, что это сарказм.
Documentation it's must have!
Этот человек - инженерный гений. Никто иной бы не догадался поставить микрофон в чашку.
Хахахахаах
Не могу не нарадоваться тому, что кашёл этот канал, а через несколько месяцев попал на курс к этому замечательному человеку. Всем настоятельно рекомендую качать скилл у таких профессионалов своего дела как Илья. Материалы на вес золота! А грамотный, душевный подход к делу и людям очень мотивирует! Примного благодарен за твой титанический труд , Илья)
Спасибо!)
Спасибо за понятное и наглядное объяснение) До этого урока очень боялся работать с лучами, а теперь это стало намного понятнее) Жаль что ты немного забросил контент, но я думаю твои ролики останутся у многих в сердечки) Спасибо всё понятно и информативно)
Снимай больше уроков, у тебя очень годный контент. Спасибо, я много чему научился на твоих уроках!
Давно не мог разобраться с Raycast-ами, ибо уроки на youtube специализируются на "Напиши вот это и будет работать". Спасибо вам огромное за то, что помогли понять эту вещь и за то, что так постарались над видео.
Спасибо вам огромное!!!! Без вас я бы сделал выделение, не меньше чем через месяц, а благодаря вам я изучил выделение за один вечер!!! Словами не описать насколько вы мне помогли!!!
Отдельное спасибо за такое пояснение, что у коллайдера есть свой метод Raycast, очень тонко подмечено, о чём как-то не очень догадывался) X_X
молодец бро именно такого ютубера я искал ,есл и бы ты раньше появился,год назад и еще в рекомендациях все было бы проще. Я так понимаю как все это работает, но как подавался материал , сможет это единицы ,уважуха и да я узнал и почерпал оттуда много нового ,спасибо тебе!
самый крутой чел по разъяснению юнити!!!! Спасибо!
Самые понятные уроки во всем ютубе, спасибо тебе огромное!
Обычно, не пишу комменты, но тут спустился, чтобы спасибо написать, очень всё по теме и нужное. Спасибо!
Интереснейшая подача материала, большой респект!
Благодарю. Разъяснения толковое. Выдержан приятный для восприятия ритм повествования
Лайк. Интересно слушать. Как раз изучаю unity. Давай побольше уроков )
Очень крутые видосы у тебя. Почему не когда твои ролики не видел. Спасибо большое дружище , ты мне много часов с экономил
Спасибо. Очень крутое и понятное объяснение. Как раз то что искал
Спасибо! теперь твои видео для меня nom.1 в изучении unity!
Спасибо огромное! Очень полезно, это прям то что я искал) Узнал все что надо и даже больше!
Спасибо за простое понятное объяснение рэйкаста!
Ааа, светлая тема в среде разработки, ааа, мои глаза!
Всё это знаю, но всё равно с удовольствием посмотрел на грамотное изложение материала.
самый лучший урок по рейкасту. Спасибо за урок, я подписался!
Спасибо, спасибо!! Самый лучший и понятный урок который я видел!
Спасибо за подробное объяснение!
Благодарю за видео! Очень круто объясняешь!
Красавчик, все четко и ясно
Очень классно объясняешь, спасибо)
Отличный материал! Спасибо)
Спасибо за подробное обьяснение
Наконец-то годное и понятное видео)))
Спасибо большое за эту серию видео. Тем более За PayCast.
Спасибо за видео.
Спасибо за урок!!!!!!!!!!!!!!!!!!!!!!!
Спасибо, красавчик мужчина!
Спасибо за урок, но я считаю, что было бы полезно рассказать так же об анимации рэйкаста и толкание им других обьектов (стрельба)
Спасибо, лучший!
хорошое объяснение
спасибо большое!
Прекрасно
Без рэйкаста нынче никуда)))
Классный урок!
РЕШЕНО.
А возможно одновременно в Physics.Raycast() написать Distance и out hit? У меня не получилось.
Идея такова: из центра камеры игрока идет Raycast. При наведении на обьект появляется UI элемент. Но если дистанция, к примеру, больше двух, то UI не появится.
UI конкретно в моем случае, там может быть что угодно.
P.S игра в 3D
Как я это сделал:
Как автор и показывал в видео я зашел в VS, напечатал Physics.Raycast() и мне уже VS выдал варианты. Среди них я нашел такую схему: Physics.Raycast(ray, out hit, maxDistance, LayerMask). Все замечательно работает.
Спасибо
комментарий в поддержку !
Очень жаль, что ты перестал записывать видосы, благодаря тебе понял как работают лучи, и в ближайшее время все остальные видосы посмотрю) Думаю тебе не хватает пиара и более частого выпуска роликов, чтоб канал выстрелил. За видеоуроки благодарочка в общем)
Спасибо) да времени мне не хватает просто)
@@EccentricGames понимаю, но зато моё время ты сэкономил немало) делаю небольшой симулятор для дипломного проекта, и ты очень помог разобраться во всех скриптах, которые я в инете находил
@@user-ms2ig5it9d хорошо) покажи потом что получится)
@@EccentricGames хорошо, отпишусь если конечно что-то получится 😹 сделал тестовую сцену с примитивами, ещё даже механику не всю реализовал, а у препода на компе уже лаги жёсткие... вот тебе идея для видео кстати, способы оптимизации игры)
в топ!
У меня не появляется луч в сцене что делать?
Привет, спасибо большое за отменные уроки, все очень четко и ясно. Не могу к сожалению найти то место, где ты прикрепил описание скрипта на передвижение камеры, будь добр - подскажи где можно посмотреть на него
Спасибо что напомнил. Вставил в описание.
Спасибо за такой замечательный урок. 👍 круть 😎 Но если я хочу таким же способом выделять 2Д спрайты, как это сделать?)
Вопрос насчёт "развыделения", а не проще было просто после if ray на объекте то жёлтый просто добавить else и добавить чтобы он выкрашивплся допустим в серый цвет?
конечно теперь кнопка подписки не красная, но я подпишусь)
Fantastic
Отличный тутор, спасибо большое! Остался один вопрос: красная точка остается в последней точке на объекте с коллайдером, если луч попадает в зону, где коллайдера нет. Как сделать так, чтобы точка исчезла, когда луч не сталкивается с коллайдерами?
thanks
Крута натуре
За урок, хоть я его и не искал спасибо. Мне было бы интересно узнать, почему некоторые "устойчивые" в реальности тела совсем не устойчивы в юнити. Например, если поставить на один куб 1*1*1 массой 1кг другой - массой 25кг, то нижний начинает проседать, а верхний "елозить". Можно конечно пошаманить с параметрами материала, но это не совсем реально.... и как быть?! PS Про кнопку "Подписаться" порадовало)) надо уже сделать так что бы ютуб сам подписывал на каналы которые ты смотришь.. )
Помогите плиз, как повернуть объект к конечной точки луча с постоянной скоростью?
В начале скрипт написал, на куб кинул, луча нет(( Пишет типа неверная ссылка на vector3
Tnx for a vid
назначать компонент-скрипт для группы объектов, чтобы по нему определить что объект входит в группу. насколько это производительно? тут о(N) получается для каждого объекта
Спасибо за познавательное видео! А можно такое же только в 2д?))
да
пасиба
на новой инпут системе Input.mousePosition не заработает, так же не будет работать и private void OnMouseEnter() для подсветки, я пока включил использование обоих, есть у кого то решение?
Топ
Все круто я почти все понял кроме одного. Можете пожалуйста сказать что такое ноомаль точки.
Здравствуйте, а Вы планируете раскрыть функцию MeshTest?
Что на счёт ray cast из объекта с rigidbody в 3d? Я на данный момент работаю только с 2d физикой в unity и там при любых условиях rigidbody2d перехватывает луч, даже если будет указан layer mask, поэтому я выключаю симуляцию в момент бросания луча, а после включаю.
Хороший курс, много нового узнал! На столько качественного контента на русском, к сожалению, мало.
Ну если луч будет идти изнутри коллайдера то не заденет. Маски должны работать, видимо что-то не так делаешь
@@EccentricGames А, ну да. Не помню, что я не так делал, сейчас просто удалил строчки с отключением симуляции и всё нормально работает, хех.
Кто ни будь сталкивался с такой проблемой:в сцене сто префабов белого цвета,при попадании луча они должны окрасится, все работает,все красятся,но один префаб не окрашивается,причем когда в следующий раз попадет луч он окрасится.прямо проблемная точка в сцене, удаляли это префаб,подставляли на это место клона,даже просто соседний префаб в эти координаты перемещали и точно так же-ни как не реагирует.причем код срабатывает,т.к после окрашивания ,объект бросающий луч передвигается в нужные координаты,т.е если префаб белый,то его нужно окрасить и передвинуться.вот не окрашивает,а передвигается,но в условиях прописано,только когда окрасил можешь двигаться.во всей сцене всё работает как часики,но вот тут непонятка какая-то
Спасибо за урок!! Такой вопрос, после обновления Unity 2020.3.4 (URP 10.4.0) до Unity 2021.3.10 (URP 12.1.7) столкнулись с проблемой заикания/замедления кадров, которой не было до обновления. Заикание заметно, когда игрок использует плавное передвижение, а также видно на анимированных движущихся объектах. Проблема заметна только на сборках Quest vr. В Steam VR проблема отсутствует. Не знаете что это может быть ?
Я уже сделал кнопку ПОДПИСАТЬСЯ серой
Автор:
Думаю его можно сделать чуть-чуть по аккуратнее
Я:
Пытаюсь сделать это самостоятельно без подсказок на протяжении 2 часов и при это получается 120 строчек кода
и при этом ни чего не работает.
Отличное видео, вы мне очень помогли, можете сказать как сделать так чтобы visual studio делала подсказки для юнити, а то пишу переменные, методы и хз что и как
Upd: все получилось
Похожий трабл с Xamarin Studio (Mono Develop для олдов)
Как можно реализовать испускание тысячи рейкастов из поля зрения камеры(не из камеры, а из поля зрения!). Хочу реализовать что-то наподобие оптимизации с помощью рейкастов, чтоб прогружались те объекты, которые я вижу и в которые попал луч, типа Oclussion Culling.
привет , понимаю что в смс ты не сможешь полностью ответить на мой вопрос , дай хотя бы направление мысли , я хочу сделать нормальную подвеску у танка , чтобы котки двигались и гусеница тоже, и при этом чтоб котки реагировали реалистично на наезд каких то камней ну короче различных объектов в сцене , подскажи с чем нужно работать что бы это реализовать
Не думал, что в СНГ существуют качественные ролики по Unity
Очень полезный урок. Только чтобы красить объекты выборочно, можно было дать тег этим объектам, а не писать отдельный скрипт.
Здравствуйте, у вас в каком-то видео был рассказ про движение объекта под углом, но не помню в каком. Можете подсказать?
ua-cam.com/video/BPHNurbv5Do/v-deo.html может это, если я правильно понял вопрос
ухты! а можно с помощью луча как в 16:00 сделать чтобы персонаж при падении с высоты останавливал падение если луч касается земли
а где взять скрипт pointer?
почему при дебаге линии, ее конец прикреплен к 0, 0, 0?
Скрипт не работет. Не отслеживает движение мыши. Движения с клавиатуры работают. Что тут не так?
а как сделать чтобы лучем был объект конкретный?
'Ray' does not contain a constructor that takes 2 arguments - перепроверил кучу раз, выдает это с первого скрипта, в инете не нашел что делать(
Возможно поздно, но напишу это для других людей, которые столкнутся с подобной проблемой.
Дело в том, что компилятор начинает тупить, из-за того, что вы вероятнее всего написали название скрипта как Ray
Сейчас в юнити новая виртуальная камера и с ней уже так рейкаст не хочет работать(
Спустя 5 месяцев всё работает
до 13:14
что делать, если не отображается луч?
Не понимаю почему когда рисуем луч нужно заново указывать параметры луча, к тому же там даже не написано какой луч мы рисуем. Если у меня их несколько?
Сэнькю Вери матч)))
Блин видео хорошее но как качество поменять а то код писать не удобно
Как настроить длину луча? Чтобы он не был бесконечным.
Raycast(объект, длина луча). Он на 16:20 об этом рассказывает
У меня hit.point при попадании бесконечно меняется в чем проблема? Т.е. сфера перемещается между объектом куда попал луч и кубиком. А у автора сфера перемещается один раз. Код строчка в строчку такой же.
У меня аналогично. Pointer постоянно перемещается от hit.point до Player'a.
UPD: Надо убрать галку со Sphere Collider на сфере.
По сути шарик рисуется материальным. Потому отталкивается от объекта. Выяснил это поставив перед лучом незакрепленный объект
В самом начале уже проблемы. Скрипт ругается: в строчке Ray ray = new Ray(transform.position, transform.forward) говорит, что Ray не содержит конструктора, поэтому в скобках не должно быть ничего. А в Physics.Raycast(ray) говорит не удается преобразовать из "Ray" в "UnityEngine.Ray", в чем может быть причина?
Может у тебя скрипт какой-то называется Ray
@@EccentricGamesДа, спасибо большое
объясняешь хорошо, жаль, что не работает
А raycast по коллайдерам расчитывается или по мешу?
По коллайдерам
Что делать если я не вижу луч?
Пытался разобраться с этими рейкастами по твоему року, переписал весть код как в видео, но компилятор так и не смог понять, откуда ты взял этот selectable и выдавал error CS0103: The name 'selectable' does not exist in the current context... Как не переписывал твой код, каждый раз получаю одну и ту же ошибку, а есть сам пропишу через private или public этот selectable, то ошибка пропадает, но ничего не работает, луч есть, но объект не перекрашивается. В общем, я так и не смог понять, как у тебя оно работало. Тесты проводил на разных версиях юнити, везде всё одинаково...
@@user-sb3ey9dx1x у меня, кстати, проблема сама ушла через несколько дней. В чем было дело, я так и не понял...
18:15 как ты это сделал?
Если карент селектабл правда и карент селектабл не селектабл, то каррент селектабл - деселектабл.
у меня не получилось желтый луч сделать