#4 - Простой прыжок в Unity 2D + фикс мультипрыжка и прилипаний

  Рет қаралды 63,901

Noob Game Dev

Noob Game Dev

Күн бұрын

Пікірлер: 405
@gorchezza2480
@gorchezza2480 2 жыл бұрын
По моему это лучший тутор для новичков, в твоем плейлисте есть все необходимое для базы, не представляешь как я благодарен, ведь именно найдя твои видосы процесс пошел куда быстрее!!))
@bogdan9423
@bogdan9423 Жыл бұрын
Спасибо большое, очень полезный и очень интересный урок! Прям реально без преувеличения, очень хорошие объяснения, мало кто так подробно останавливается на отдельных важных моментах. Спасибо)
@sensei7059
@sensei7059 3 жыл бұрын
Отдельное спасибо за то, что выкладываешь код!
@papytoncatleta8753
@papytoncatleta8753 Жыл бұрын
прошло много времени с выхода видео, но вы всё ещё отвечаете на комментарии, спасибо вам за туториалы
@ma_liberta
@ma_liberta Жыл бұрын
вы просто лучший, всё работает!!! спасибо огромное! столько разборов посмотрела
@hakloi
@hakloi 9 ай бұрын
Ребят, у кого прыжок все еще бесконечный - внимательно посмотрите на layer. он везде по default должен быть, кроме объекта Ground я на этом стопорилась и искала баги в коде да прибудет с вами геймдев сила ))
@Belovikzzz
@Belovikzzz 2 ай бұрын
Спасибо!
@oldborodach
@oldborodach 3 жыл бұрын
Прикольно спс за урок, но можно в следующий раз для чайников по медленнее и так норм контент такой можно и продлить в минутах я думаю все досмотрят!🤝
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Спасибо, учту на будущее!)
@karliknos8704
@karliknos8704 3 жыл бұрын
Дело вкуса. Мне наоборот, нравится когда побыстрее. Если что-то не разглядел, ставлю скорость на 0.5 и пересматриваю. Так удобнее: пробегаться по общей информации и заострять внимание на важной, а то недавно смотрел урок по блендеру, семь минут кулстори от автора, чтоб показать где включается одна галочка. И вроде бы спасибо ему, смог закрыть свой вопрос, но чёт выбесил))
@Madl_Madl
@Madl_Madl 4 жыл бұрын
Вот бы такого учителя в колледже, не то что мои учителя в 3-ем курсе все еще дают уроки по Microsoft World. Спасибо большое дальше буду смотреть тебя)
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Я рад) Видел Вы там писали, что что-то не получалось... Не успел ответить( Разобрались?
@Madl_Madl
@Madl_Madl 4 жыл бұрын
@@NoobGameDev Да, во всем разобрался. Оказывается я какие-то строки в скриптах я пропускал, поэтому не работало прыжок. Спасибо большое, буду дальше смотреть твои видео
@Madl_Madl
@Madl_Madl 4 жыл бұрын
@@NoobGameDev Можно было бы записать урок как прицепить камеру к персонажу или как создавать уровни и врагов. Надеюсь в будущем у вас будет такое. Желаю тебе удачи)
@NoobGameDev
@NoobGameDev 4 жыл бұрын
@@Madl_Madl Есть такое в мыслях) В идеале, я планировал писать игру и после добавления в неё какой-то "возможности", делать на эту тему урок) Чтобы и самому не забыть и с людьми поделиться. Т.е. на выходе должна получиться игра из данных уроков... Или уроки из игры) Только из-за этих видео, время создания самой игры увеличится раз в 10-15, видимо... В общем, задумка такая. Спасибо за поддержку!) Будем делать дальше)
@Madl_Madl
@Madl_Madl 4 жыл бұрын
@@NoobGameDev Это правильно, чтобы потом не забыть что в прошлом изучать. А так то это полезно не только тебе, но и простым людям которые в этом интересуются. Но все равно желаю тебе удачи, буду дальше смотреть твои видео)
@MrSleepydragon
@MrSleepydragon 2 жыл бұрын
Привет! Отличные уроки! Объясняешь такие мелкие детали, которые даже на форумах толком не найти. И уж тем более не сравнить со всякими "онлайн-университетами", в один из которых я вляпался по незнанию. Спасибо :)
@Jetbullet777
@Jetbullet777 2 жыл бұрын
Привет, а не подскажешь какой университет? Сейчас сам раздумываю пойти на курсы по геймдизайну. Но столкнулся с такой забавной темой... Noob Game Dev объясняет в разы лучше, чем преподаватель одного из университетов, записи уроков которого у меня есть. Тут все структурировано, четко и без лишней воды. За 5-10 мину объясняет то, на что тому преподавателю понадобилось полтора часа. Вот теперь не уверен...
@MrSleepydragon
@MrSleepydragon 2 жыл бұрын
@@Jetbullet777 , дабы избежать рекламы, намекну - "коробка навыков". Касательно обучения - если есть деньги (это главное), если нужен порядок (систематизация) обучения, если нужен диплом, если нужны преподаватели - смело приобретай курс. Но. Почти всё, что я знаю, в конечном итоге получено из KZbin. Преподаватели - среднячок, один норм попался ("вот тут и тут скрипт поправить, тут отлично сделано, тут посмотри, как лучше сделать"), второй откровенный раздолбай ("а ну норм идём дальше"). Систематизация обучения есть, но в ней много дыр для перфекционистов. И пока неясно, где и как пригодится упомянутый диплом. В IT-компаниях его не жалуют, это точно.
@Jetbullet777
@Jetbullet777 2 жыл бұрын
@@MrSleepydragon диплом, понятно, что никому не нужен. Важнее портфолио и реальные знания. Мне бы с программированием сейчас разобраться…
@lidjest9888
@lidjest9888 3 жыл бұрын
Спасибо.. Спасибо. Буду вас везде рекомендовать, где только можно.
@danyasklyanichenko817
@danyasklyanichenko817 3 жыл бұрын
Спасибо была проблема с анимацией прыжка, а теперь я знаю как её решить.
@zuba_tv
@zuba_tv 11 ай бұрын
Какой способ лучше 1 или 2 в плане правильности и в дальнейших изменениях
@gamecreature8263
@gamecreature8263 2 жыл бұрын
Спас братишка Одинцовский респект!
@egorbragin3191
@egorbragin3191 2 жыл бұрын
Уроки замечательные! Я ими иногда пользуюсь, когда делаю платформеры и т.п.
@MapperoftheHorde
@MapperoftheHorde 4 жыл бұрын
Как же хорошо всё и понятно!
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Спасибо! Стараемся)
@mtythere
@mtythere 3 жыл бұрын
Огромное спасибо за видео, объясняете довольно доходчиво, а самое главное - кратко.))
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Спасибо)
@blackmercy-il9me
@blackmercy-il9me 3 жыл бұрын
@@NoobGameDev видео неплохое, но за такой код и по рукам могут ударить
@NoobGameDev
@NoobGameDev 3 жыл бұрын
​@@blackmercy-il9me Я знаю (( Я не Сакутин, чтобы ревьюшить код сеньёров... Мой уровень довольно любительский... Я никогда себя не позиционировал, как профи, не преподносил свои видео, как истину в первой инстанции, и уж тем более никогда не продавал данные уроки, обещая что люди после них смогут работать в крупных компаниях) Потому и название у канала такое) Изначально это всё планировалось, как заметки для себя, чтобы не забыть, что и как я сделал в проекте... Поэтому считаю, что такие косяки в коде в моём случае допустимы (по крайней мере, на данном этапе развития канала, да, и меня, как программиста-любителя). Но могу Вам обещать, что я буду стараться выйти на адекватный уровень, так как знаю, что мои знания достаточно далеки от идеала и мой код далёк от приемлемого уровня. Каждый день я узнаю, что-то новое и всё больше замечаю пробелов в различных областях. Спасибо Вам за этот "шлепок по заднице", уверен, он меня подстегнёт к детальному изучению основ) Так же, если Вас не затруднит, то буду благодарен, если дадите несколько ссылок на годных авторов или на какие-либо ресурсы, которые смогут подтянуть меня в кодинге на C# под Unity!)
@godfather7695
@godfather7695 Жыл бұрын
В методе addforce надо добавлять forcemode.impuls и делать проверку на velocity по вертикали, чтоб она была меньше скажем 0,1f тогда не будет даблджампа
@kriper_4062
@kriper_4062 Жыл бұрын
Можно код?
@Raikis11
@Raikis11 2 жыл бұрын
Все написал правильно. Ошибку не выдает у обоих способов. Прибавил высоту прыжка и все ровно когда я нажимаю на пробел ничего не происходит
@sapfi1495
@sapfi1495 4 жыл бұрын
У меня вечная проблема с вашими уроками. Вроде логически код у вас верен. Но юнити не принимает его вообще. Что с хождением(исправила потом самостоятельно), что с прыжками. Я пытаюсь в дебри не заходить и остановилась на самом начале - до 0:53. И персонаж не прыгает. Просто не реагирует никаким боком.
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Может, Вам мой метод преподнесения информации не подходит... Попробуйте ещё кого-нибудь из авторов посмотреть, я и сам всегда ищу, как минимум две точки зрения на решение проблемы. Но если хотите - можем попробовать разобраться, что не так) Скиньте в комментарий (или в vk.com/evgen_orlov ) код, с которым Вы сейчас мучаетесь. И скажите, что именно Вы исправляли в "ходьбе", чтобы код заработал так, как Вы хотели?
@devrimport
@devrimport 2 жыл бұрын
Спасибо, у тебя самый понятный код :)
@feroindiary346
@feroindiary346 2 жыл бұрын
а как вы узнали о значении -30 для 2д платформеров? Я бы почитал сайт где об этом написано, наверное много полезного будет. 2:23
@NoobGameDev
@NoobGameDev 2 жыл бұрын
На самом деле я слышал это в нескольких уроках на данную тему... Потом попробовал сам и мне это значение тоже понравилось (похоже на большинство динамичных платформеров). Насколько это истина я не знаю и точного источника, к сожалению, сказать не могу)
@xaos8192
@xaos8192 Жыл бұрын
Почему я не могу добавить PhysicMaterial2D, мне предлагает только PhysicMaterial
@NoobGameDev
@NoobGameDev Жыл бұрын
После нажатия Create выберите пункт 2D, в нём будет PhysicsMaterial2D
@phoenix2810
@phoenix2810 11 ай бұрын
Я сделал все как на видео и персонаж прыгает но высота прыжка постоянно разная в зависимости от силы нажатия на пробел как это исправить?
@zuba_tv
@zuba_tv 11 ай бұрын
Попробуй в Void Jump в if заменить getkeydown, на getkeyup
@denis_na_yuge
@denis_na_yuge 11 ай бұрын
Автор! Чтобы AddForce работал нормально нужно дописать в скобках ForceMode2D.Impulse т.е.: rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); и тогда он нормально прыгает при обычных значениях jumpForce
@NoobGameDev
@NoobGameDev 11 ай бұрын
Есть такое. Не помню с какой версии движка прям стало необходимо явно указывать ForceMode. Видео устарело) Надо переделывать 👍
@I_ne_rei
@I_ne_rei 2 жыл бұрын
У меня персонаж прыгает от стены , объект для определения на стену не залазит, радиус в скрипте а на объекте равны, но on Ground у стены равняется true
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Скорей всего, радиус проверки земли выходит за границы коллайдера перса. Другими словами шире, чем перс. Это от части моя вина, что запутанно объяснил... Но попробуйте дописать эти строки перед последней фигурной скобкой " } " в скрипте: private void OnDrawGizmos() { Gizmos.color = Color.red; Gizmos.DrawWireSphere(GroundCheck.position, GroundcheckRadius); } В результате появится красная полая сфера, которая будет истинным радиусом проверки (ориентируйтесь на неё) и изменяйте радиус через Инспектор (GroundcheckRadius) таким образом, чтобы упёршись персом в стену, данная сфера не доставала до стены. Если будет непонятно или если я не правильно понял суть вопроса, то можете зайти к нам на Дискорд сервер (ссылка есть в шапке канала) - там проще объяснить и показать)
@I_ne_rei
@I_ne_rei 2 жыл бұрын
@@NoobGameDev Спасибо
@fasbodeveloper8170
@fasbodeveloper8170 Жыл бұрын
спасибо большое до тебя у меня не получалось
@shushard
@shushard 4 жыл бұрын
очень приятно слушать)
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Аххах!)) Спасибо) Правда, я не доволен ни звуком, ни дикцией, но буду работать над этим... Надеюсь, будет становиться только лучше)
@538h
@538h 4 ай бұрын
Спасибо большое, но у меня появился баг при котором прыгать бесконечно можно стоя в плотную к стене. Как это можно исправить?
@saytamaaw
@saytamaaw Жыл бұрын
после того как написала код для чекера-пустышки в плейере , мой перс перестал прыгать , вроде все написала правильно , нигде нету ошибок , он по просту не прыгает . Помогите
@ВасилийМоисеев-ж6у
@ВасилийМоисеев-ж6у Жыл бұрын
void ChekingGround() { OnGround = Physics2D.OverlapCircle(GroundCheck.position, checkRadius, LayerMask.GetMask("Ground")); } Попробуй написать код так, у меня получилось
@saytamaaw
@saytamaaw Жыл бұрын
@@ВасилийМоисеев-ж6у премного благодарна !!
@leg0redd0
@leg0redd0 2 жыл бұрын
Большое спасибо! Очень помог!
@kot4624
@kot4624 3 жыл бұрын
я чуток пакапался и все понял теперь все работает
@fnafut
@fnafut Жыл бұрын
Почему красным подчёркивает rb и jumpForce ? Из первого способа
@zuba_tv
@zuba_tv 11 ай бұрын
Если проблема все еще актуальна добавь в скрипт Rigidbody2 Private Rigidbody2d rb; И в void Start Напиши Rb = getcomponent();
@fnafut
@fnafut 11 ай бұрын
@@zuba_tv уже нет, но спасибо
@Данил-г7ъ
@Данил-г7ъ Жыл бұрын
Здравствуйте можете помочь у меня пишет в Unity, Animator is not playing an AnimatorController
@Данил-г7ъ
@Данил-г7ъ Жыл бұрын
вот мой код using System.Collections; using System.Collections.Generic; using UnityEngine; public class Прыжок : MonoBehaviour { public Rigidbody2D rb; public Animator anim; void Start() { rb = GetComponent(); anim = GetComponent(); } void Update() { Walk(); Reflect(); CheckingGround(); } public Vector2 moveVector; public float speed = 2f; void Walk() { moveVector.x = Input.GetAxis("Horizontal"); anim.SetFloat("movex", Mathf.Abs(moveVector.x)); rb.velocity = new Vector2(moveVector.x * speed, rb.velocity.y); } public bool faceRight = true; void Reflect() { if ((moveVector.x > 0 && !faceRight) || (moveVector.x < 0 && faceRight)) { transform.localScale *= new Vector2(-1, 1); faceRight = !faceRight; } } public float jumpFource = 7f; void Jump() { if (Input.GetKeyDown(KeyCode.Space) && onGround) { //rb.velocity = new Vector2(rb.velocity.x, jumpFource); rb.AddForce(Vector2.up * jumpFource); } } public bool onGround; public Transform GroundCheck; public float checkRadius = 0.5f; public LayerMask Ground; void CheckingGround() { onGround = Physics2D.OverlapCircle(GroundCheck.position, checkRadius, Ground); } }
@NoobGameDev
@NoobGameDev Жыл бұрын
Здравствуйте) В коде ничего необычного не вижу. Скорей всего, у вас либо выключен компонент Animator (в Инспекторе), либо сам объект находится в неактивном состоянии, либо у компонента Animator нет ссылки на AnimatorController. Но думаю, что без сриншотов будет сложновато объяснить. Посетите наш Дискорд сервер (ссылка есть в шапке канала). Можете заскринить этот комментарий и попросить помощи там. Со скриншотами всяко понятнее и быстрее получится)
@gandonius_me
@gandonius_me 3 жыл бұрын
Здравствуйте, сделал как все надо, только вот запускаю. Персонаж запускает анимацию и застыват в анимации прыжка и двигается так же, + к этому и пробел не тыкается. В чем может быть проблема? Цикл на jump еще застрял
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Очень похоже на то, что перс не "видит" землю... И считает, что он постоянно падает, ну, поэтому и не прыгает соответственно) Попробуйте увеличить размер коллайдера объекта GroundCheck. Или ещё лучше, сперва попробуйте дописать эту строку в функцию Start (как в коде под видео): GroundCheckRadius = GroundCheck.GetComponent().radius; Она автоматически будет вписывать радиус коллайдера в переменную GroundCheckRadius. А так же перепроверьте выбрали ли Вы слой Ground в поле Ground в Инспекторе и находится ли платформа, на которой стоит перс, на слое Ground.
@gandonius_me
@gandonius_me 3 жыл бұрын
@@NoobGameDev Спасибо огромное" Проблема была в слоях, не прикрепил. Теперь проблема осталась другая, как найти physics material 2D? у меня отображается просто physics material
@ПавелЗалётин-я7р
@ПавелЗалётин-я7р 3 жыл бұрын
Спасибо,все работает!
@ilexsander6412
@ilexsander6412 2 жыл бұрын
Что делать если на 0:51 пишет: Assets\movePlayer.cs(32,13): error CS0103: The name ‘onGround’ does not exist in the current context.? Помогите пожалуйста.
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Пишет, что Вы не объявили переменную 'onGround', но при этом пытаетесь её использовать, т.е. пропустили строку: private bool onGround = false; Добавьте её где-нибудь вне метода, там где другие переменные объявляются и должно заработать)
@geba3596
@geba3596 2 жыл бұрын
Привет, я на моменте где добавил onGround и он появился в inspector но когда запускаю и 2 прыжок все равно работает + все время стоит галочка на onGround где допускаю ошибку ?
@geba3596
@geba3596 2 жыл бұрын
Все разобрался, я не туда добавил Layer
@11_1o9
@11_1o9 2 жыл бұрын
@@geba3596 Расскажи как ты исправил Layer? У меня сейчас так же
@darktermux2932
@darktermux2932 4 жыл бұрын
Привет, не нашел твой телеграм, напиши пожалуйста свой, у меня одна МЕГА проблема, когда увидишь у тебя тоже глаза на выкате будут, как мне кажется, это по юнити
@ИлонМаск-р9у
@ИлонМаск-р9у Жыл бұрын
Скажите а можно так же сделать рывок по свайпу как в катана зеро и чтоб можно было свайпом задавать направление?
@yourpast1494
@yourpast1494 Жыл бұрын
Можно, не знаю, как свайпы обнаруживать, но думаю, труда это не составит
@minoddein7205
@minoddein7205 4 жыл бұрын
1)Вроде всё нормально,но прыжок получается слишком резким(ForceMode2D.Impulse вообще отключает прыжок по каким-то причинам) 2)Есть ли какая-нибудь документация с разбором методов и классов unity?Просто новичок в этой теме,раньше писал чисто на C#,а ,перейдя сюда,словно очутился в другой вселенной. 3)Неописуемо рад,что наткнулся на твой канал,один из лучших по обучению,а таких мало.Вот что мне нравится - постепенно,структурировано и подмечаешь все детали,спасибо!
@NoobGameDev
@NoobGameDev 4 жыл бұрын
1. При использовании AddForce нужно значительно увеличить силу прыжка (jumpForce) так как "velocity" задаёт конечную величину и направление ускорения объекта, а AddForce прикладывает силу к объекту, которая должна задать ему такой импульс, который и силу гравитации преодолеет и ускорение задаст... Поэтому при использовании AddForce и маленьком значении величины jumpForce, может казаться, что прыжка не происходит. Так же у компонента Rigidbody2D, есть такое свойство, как "Gravity Scale" (можно и в Инспекторе изменять), которое является множителем гравитации. При резком прыжке попробуйте поиграться с этим значением (увеличьте раза в 1.5 - 2) 2. Есть официальная документация, на которую все в основном и ссылаются: docs.unity3d.com/Manual/index.html Она довольно обширная, но очень малая её часть переведена на русский, что вызывает сложность при её использовании. А, к сожалению, каналов или ресурсов с хорошим объяснением и широким спектром обозреваемых возможностей Unity, я не встречал. Так же больше всего материала по Unity связано именно с разработкой в 3D. 3. Большое спасибо, рад, что мой контент пришёлся Вам по вкусу))
@minoddein7205
@minoddein7205 4 жыл бұрын
@@NoobGameDev , спасибо. Касательно первого, изменение гравитации сказывается на скорость падения - да,а вверх прыжок происходит,как будто телепортация. AddForce сам по себе работает,но при добавлении аргумента ForceMode2D.Impulse - прыжок не работает,вот в чем проблема.Из-за этого я не могу оценить влияние данного параметра,может именно он позволит плавнее выполнять прыжок. rb.AddForce(Vector2.up * jumpforce(3000 стоит)); - работает,но телепортируется вверх rb.AddForce(Vector2.up * jumpforce(3000 и более),ForceMode2D.Impulse); - не работает вовсе
@vasyanya2611
@vasyanya2611 2 жыл бұрын
Делал прыжок через AddForce. Помещая метод прыжка в Update, персонаж на огромные расстояния одним прыжком улетал(Со значением прыжка 4 улетал до 46 унитов вверх). Помещая метод в Fixed Update прыжок стал адекватным, но не равномерным и каждый третий/четвёртый выходит будто с умноженной высотой. Не могу понять в чём проблема.
@tozen450
@tozen450 2 жыл бұрын
Может ты считывал нажатие кнопки с помощью GetButton? Для прыжка лучше ставить GetButtonDown
@zungzao
@zungzao Жыл бұрын
при добавлении Physics Material 2D персонаж, как бы это странно не звучало, перестал останавливаться, то есть даже при отпущенной кнопке движения продолжал двигаться. исправил пока что увеличением Linear Drag, дальше будем посмотреть
@four8772
@four8772 2 жыл бұрын
что делать если выдаёт ошибку Assets\Scripts\Player.cs(43,25): error CS0117: 'Physics2D' does not contain a definition for 'OverLapCircle' помогите! прошу!
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Если проблема ещё актуально, то C# чувствителен к регистру букв. В данном случае в "OverLapCircle" написана "L", а должна быть "l", т.е. вот так: "OverlapCircle"
@ROBLOX_NOOBIK284
@ROBLOX_NOOBIK284 Жыл бұрын
Можете помочь с тем что-бы чел не прыгал в воздухе. Скрипт дайте пж
@poli_merniy
@poli_merniy 2 жыл бұрын
6:51 почему " SetBool" выдаёт ошибку?
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Без кода ошибки непонятно... Вот несколько причин: 1. Ошибка в написании. 2. Вы передаёте в Аниматор не логическое значение (true / false), а, например int. 3. В самом Аниматоре нет логической переменной с таким именем.
@poli_merniy
@poli_merniy 2 жыл бұрын
@@NoobGameDev Спасибо я уже все исправил :)
@mrdred2697
@mrdred2697 3 жыл бұрын
Здравствуйте, делал все по вашему видео (посмотрел и написал код из: 2, 3 и 4 видео). А сейчас я немогу вставить этот скрипт на персонажа. Выдаёт ошибку вроде этой: - Can't add script Please fix compile errors before creating new script components. Прошу, пожалуйста, помогите!!!
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Сорри, поздно увидел сообщение... Проблема в том, что Вы пытаетесь "повесить" скрипт в котором есть синтаксические ошибки. Если проблема актуальна, то перепроверьте новый скрипт (возможно, где-то пропущен символ ";" ) VisualStudio такое должен подчёркивать. А если он этого не делает, то есть подозрения, что он у Вас и с Unity не связан... Поэтому ещё рекомендую глянуть вот это видео (лишним точно не будет): kzbin.info/www/bejne/rWmtXqaoi56osNk
@mrdred2697
@mrdred2697 3 жыл бұрын
@@NoobGameDev Хорошо, спасибо, проверю, но хочу уточнить что я работаю на юните которая идет на 32битную windows 7 (то есть Unity 5.6.7f1). И VisualStudio у меня нет. Я подключил к Unity Visual Studio Code (и скачал все что связано с C# и с самим Unity)
@NoobGameDev
@NoobGameDev 3 жыл бұрын
@@mrdred2697 Ну, VS Code, если правильно настроен (указан в Unity, как редактор кода хотя бы), то тоже должен выделять подобные ошибки...
@Gnek69
@Gnek69 2 жыл бұрын
0:51 - скрин кода вопрос: что делать если unity говорит:The type or namespace name 'Vector2' could not be found (are you missing a using directive or an assembly reference?) вместо Вектора там ещё и другие переменные.
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Обычно при создании нового скрипта через Unity, к нему сразу подключаются самые используемые (а порой и необходимые) директивы: using System.Collections; using System.Collections.Generic; using UnityEngine; Они прописываются в самом начале, перед описанием класса. Думаю, что Вы их просто удали) Верните хотя бы using UnityEngine; Хотя лучше бы все три. А после того, как закончите писать скрипты, можно будет неиспользуемые (они будут иметь более тёмный вид) удалить.
@Gnek69
@Gnek69 2 жыл бұрын
@@NoobGameDev Я уже даавно решил эту ошибку, вы оказались правы, посмотрел на ваш код и всё понял, видео классное, завтра буду смотреть следующие части. 👍
@nobodyhome9383
@nobodyhome9383 3 жыл бұрын
спасибо тебе ты лучший=)
@МаксимЗахаров-х8у1е
@МаксимЗахаров-х8у1е 2 жыл бұрын
Здравствуйте, в новой версии Unity не смог найти physics material 2d. Обычный есть, а 2d нет. Может вы знаете другой способ как убрать прилипания или как исправить проблему с physics material 3d?
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Да, они его перепрятали немного: Create -> 2D -> Physics Material 2D
@waxxer9036
@waxxer9036 Жыл бұрын
А если он теперь прыгает только на определённой части карты?
@spidyblog
@spidyblog Жыл бұрын
а что делать у меня кргда я написал скрипт скрипт остался стандартным а в редактаре скрипта он тот который я написал и когда я добавляю его на персонажа он ничего не делает
@NoobGameDev
@NoobGameDev Жыл бұрын
Стандартный - это имеется ввиду пустой шаблон, где всего два пустых метода, Start и Update? И если в IDE он был изменён и сохранён, то почему ты решил, что он не изменился? Unity в консоли какие-то ошибки выдаёт? Или при добавлении скрипта к персонажу?
@Henesy_69
@Henesy_69 3 жыл бұрын
Здравствуйте как вы научились так кодить дайте советов смотрю видео ролики пишу повторяю за ними и когда сам пытаюсь получается хрень.
@Vnucheck
@Vnucheck 3 жыл бұрын
ЧЕЛ - МЕГАХОРОШ!!!
@LYONID
@LYONID 4 жыл бұрын
для тех, кто использует этот код для 3D public bool onGround = true; public LayerMask Ground; public Transform GroundCheck; public float GroundCheckRadius; void CheckingGround() { onGround = Physics.CheckSphere(GroundCheck.position, GroundCheckRadius, Ground); }
@4orniy468
@4orniy468 4 жыл бұрын
Спасибо тебе большое
@LYONID
@LYONID 4 жыл бұрын
@@4orniy468 пожалуйста)
@yaLolliHokage
@yaLolliHokage 2 жыл бұрын
Блин, чукак ты гений! Спасибо тебе большое! У меня именно эта ситуация, давно была проблема с мультипрыжком, всё откладывал её решения уже не в первом своём мини проекте, никак не мог найти нужного решения на просторах ютуба, но вот посмотрел это видео (хотя у автора много интересных и познавательных видео, спасибо ему за это), всё логично и должно работать, применил у себя, но облом, не зря я листал столько комментов дабы наткнуться на тебя)
@LYONID
@LYONID 2 жыл бұрын
@@yaLolliHokage желаю удачи с проектом)
@semzero277
@semzero277 3 жыл бұрын
Когда я запускаю и пробую прыгать в инспекторе показывается что On ground всегда с галочкой и мульти прыжок все еще есть, помогите как это пофиксисть?
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Это значит, что перс постоянно "видит" землю, а это, скорей всего означает, что у Вас слишком большое значение в поле GroundCheckRadius. Значение должно быть равным радиусу коллайдера объекта GroundCheck. Так же чтобы не проверять это при каждом изменении можно в ф-ю Start дописать эту строку: GroundCheckRadius = GroundCheck.GetComponent().radius; Она автоматически при запуске игры будет вписывать значение радиуса коллайдера GroundCheck в поле GroundCheckRadius
@semzero277
@semzero277 3 жыл бұрын
@@NoobGameDev Я и поставил радиусы одинаковыми но все равно мульти прыжок есть
@NoobGameDev
@NoobGameDev 3 жыл бұрын
​@@semzero277 Тогда такое ещё предположение: в Инспекторе в поле Ground должны быть выбраны только слои, на которых может стоять перс (например Ground, Platform). А если там будет выбран слой, на котором находится сам персонаж (Player) или все слои (Everything), то как раз и будет такое поведение. Или если сам объект GroundCheck находится на слое Ground - он должен быть на том же слое, что и персонаж (например Player) или на каком-нибудь нейтральном (например Default) UPD: ещё одна мысль. Точно ли GroundCheck дочерний для персонажа объект? Должна быть такая структура: Player: - GroundCheck Т.е. GroundCheck нужно перетащить В персонажа. Для таких вопросов скриншоты очень хорошо подходят, поэтому если есть Дискорд, то присоединяйся к серверу, там гораздо быстрее и проще можно помочь: discord.gg/AHpWFBAJJr
@fentan6806
@fentan6806 2 жыл бұрын
Спасибо за урок без говнокода
@BiChezGame
@BiChezGame 3 жыл бұрын
Что за обьект Ground?? от куда он взялся? что с ним делать?
@NoobGameDev
@NoobGameDev 3 жыл бұрын
1. Ground - это объект группировки для платформ (т.е. если его развернуть, то в нём будут находиться платформы) 2. Взялся он из первого урока: kzbin.info/www/bejne/imicmH-iaqmfoMk 3. В него нужно перемещать платформы, как для порядка в Иерархии, так и для того, чтобы иметь возможность группировки платформ и создания для них композитного (одного общего) коллайдера, а также данный объект со всеми дочерними объектами (т.е. платформами) стоит перенести на слой Ground, чтобы иметь возможность определять стоит ли персонаж на земле.
@dansatora3150
@dansatora3150 4 жыл бұрын
Знаю вопрос не по теме но. Как вы считаете что правильнее, переписывать готовы код и редактировать его или все же писать весь код самому?
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Сложный вопрос... Если Вы новичок, то априори не сможете написать код самостоятельно, - Вы, в любом случае будете сначала переписывать примеры, потом поймёте как они работают, а потом придёт осознание того, что нужно поменять, чтобы что-то работало так, как Вам хочется и вот уже после этого сможете написать свой код опираясь на свой опыт. Если у Вас есть свободное время и желание разобраться в том, что Вы делаете, то, конечно же, пробуйте писать код самостоятельно - это полезнее и интереснее, чем бездумно переписывать... Но! Я так же считаю, что иногда можно взять и готовый рабочий скрипт, чтобы сэкономить время и сократить кол-во ошибок (но это уже когда будете примерно понимать, как этот скрипт работает). В общем и целом: - если новичок - переписывать примеры и гуглить, какое слово в коде что значит; - почувствовал в себе уверенность - пытаться изменять чужие примеры под свои нужды; - стал ещё круче - изучать, создавать и применять новые (свои) методы под старые задачи; - почувствовал себя программистом - к этому времени и сам разберёшься, что дальше делать)
@dansatora3150
@dansatora3150 4 жыл бұрын
@@NoobGameDev благодарю за ответ)
@Mitya2087
@Mitya2087 3 жыл бұрын
У меня вопрос на счёт строчки public Animator anim; У меня в инспекторе написано что "None (Animator)" Что именно мне туда перетянуть?
@NoobGameDev
@NoobGameDev 3 жыл бұрын
А вы ещё ни одной анимации не делали для персонажа? Там нужен компонент Animator Controller, если не ошибаюсь, то при создании первой анимации, автоматически создаётся контроллер для того объекта которому была создана анимация. Но можно его создать и добавить вручную, почти так же, как и скрипт создавали: правой кнопкой -> Create -> Animator Controller -> можно его переименовать -> и перетащить в поле Controller блока Animator (или нажать на кружок справа от поля и выбрать нужный контроллер)
@Mitya2087
@Mitya2087 3 жыл бұрын
@@NoobGameDev я это уже исправил, но в любом случае спасибо
@Krukwa-o7g
@Krukwa-o7g Жыл бұрын
Мне почему-то пишет "Parameter 'onGround' does not exist.
@_annihilator_an
@_annihilator_an 3 жыл бұрын
Здравствуйте, нужна помощь,выдает ошибку : 'Rigidbody2D' does not contain a definition for 'AddForse' and no accessible extension method 'AddForse' accepting a first argument of type 'RigidBody2D' could be found
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Всё верно) Метода "AddForse" не существует, есть метод "AddForce"... (вместо буквы "s" буква "c") Обычно (если всё правильно настроено), то когда Вы начинаете писать имя метода, то VS предлагает варианты из списка доступных и похожих. А значит, если Вам VS такого списка не предлагает, то советую разобраться с настройками и посмотреть вот это вот видео: kzbin.info/www/bejne/rWmtXqaoi56osNk Это поможет Вам в дальнейшем не допускать подобных опечаток, да, и новые методы можете узнать)
@_annihilator_an
@_annihilator_an 3 жыл бұрын
@@NoobGameDev понял,спасибо Вам большое!
@FINE356
@FINE356 3 жыл бұрын
Сделал все как на видео, пересмотрел раз 10, у меня не работает анимация прыжка, и мульти прыжок и onGround вкл постоянно в чем может быть проблема?
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Вероятнее всего, это всё из-за слишком большого значения переменной "Check Radius". Основную роль играет именно это значение в поле Инспектора (не в коде) Сделайте так: подберите радиус Circle коллайдера у объекта Ground Check (он должен быть немного меньше границ коллайдера перса, чтобы если упереться в стену, то круглый коллайдер для проверки земли её не касался). После того как настроили размер, скопируйте значение радиуса этого зелёного круга и вставьте это значение в поле Check Radius. И попробуйте снова. Если не хотите каждый раз изменять значение Check Radius вручную, то в ф-и Start можете дописать такую строку: GroundCheckRadius = GroundCheck.GetComponent().radius; Она это будет делать автоматически при старте игры. Ах, да! Ещё на всякий случай проверьте, чтобы GroundCheck был дочерним объектом перса (вложенным в него). Т.е. чтобы в Иерархии была такая структура: ПЕРС-| - GroundCheck
@FINE356
@FINE356 3 жыл бұрын
@@NoobGameDev Строчка автоматического радиуса - есть, дочерним тоже он является, но не работает, не понимаю в чем проблема, (Сделал так что бы круг не выходил за пределы границ персонажа, но мульти прыжок все равно есть) И еще сделал в анимации все как у вас на видео, персонаж прыгает, бегает (с анимацией из прошлого видео) но в прыжке анимации нет, в аниматоре просто ничего не происходит, не знаю что делать, все настройки onGround точно так же как на видео- а не работает.
@NoobGameDev
@NoobGameDev 3 жыл бұрын
@@FINE356 Ну, с анимацией прыжка всё ясно - она и не будет работать, если перс всё время детектит землю. А вот почему это происходит - это надо выяснять... Скинь код сюда или в ВК, я посмотрю на всякий случай...
@ДимаЛаврентьев-в7д
@ДимаЛаврентьев-в7д 2 жыл бұрын
Когда сделал анимацию прыжка моделька перестала поворачиваться, подскажите в чем может быть дело?
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Ну, единственное, что приходит в голову - это вы записали Flip в анимации... Попробуйте пересоздать новую и следить за этим моментом. Хотя, в таком случае, если во время прыжка понажимать влево-вправо, то он должен поворачиваться... Или перс перестал поворачиваться даже, когда просто ходит? Я бы советовал к нам в Дискорд заглянуть (ссылка есть в шапке канала). Просто там всё наглядно можно показать, понять и вычислить причину.
@t4shok628
@t4shok628 3 жыл бұрын
У меня проблема ,не работает анимация . В аниматоре при срабатывании OnGround состояние прыжка мигает(шкала снизу ) В параметрах в аниматоре OnGround работает стабильно скорость анимации менял ,сама анимация из 2 кадров
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Нужно проверить переход от прыжка к покою (и к ходьбе). Есть подозрение, что там ошибка типа: в условии onGround = false вместо true. Как раз в таком случае анимация может из покоя быстро переключиться на прыжок и тут же переключиться обратно.
@t4shok628
@t4shok628 3 жыл бұрын
@@NoobGameDev я проверил ,со скриптом и переходами всё ок
@NoobGameDev
@NoobGameDev 3 жыл бұрын
@@t4shok628 Тогда можно попробовать добавить кадров к анимации (любых), чтобы их не 2 было, а скажем 10. И посмотреть, если анимация будет воспроизводиться как надо, то проблема в анимации, а если и с 10-ю кадрами она будет всего лишь "промаргивать" то проблема либо в коде, либо в Аниматоре (что скорее всего). В идеале записать бы видео с проблемой, пощёлкать переходы, код промотать и скинуть мне в ВК или Телегу, что бы не гадать)
@t4shok628
@t4shok628 3 жыл бұрын
@@NoobGameDev скорее всего я понял в чём проблема ,у меня вместе с Jump мигает и idle
@buhgalter7574
@buhgalter7574 4 жыл бұрын
Все прекрасно работает, но есть один момент, не подскажите как можно его решить? У меня анимация прыжка состоит как бы из трёх этапов, присед - прыжок - приземление (присед после прыжка), так вот, после нажатия пробела, персонаж приседает уже в воздухе, а приземление совсем не проигрывается, так как анимация прыжка прерывается после пересечения колайдера GroundCheck с объектами слоя Ground, можно это как-то пофиксить? И еще один момент, можно каким-то обраpом регулировать длину прыжка?
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Я с конца начну) О контролируемом прыжке есть видео (буквально следующий урок, 5-й), но в нём происходит контроль времени увеличения силы прыжка... Т.е. он будет прыгать дальше за счёт того, что прыгает выше. Есть так же видео об ускорении (беге, 10-й урок), в нём увеличение длины прыжка происходит за счёт увеличения скорости движения во время прыжка. Посмотрите оба видео, может, их комбинация даст, то, что Вам нужно. А вот с прыжком всё не так однозначно... Если Вы хотите анимацию перед прыжком, то придётся делать задержку на время проигрывания анимации (т.е. нажали клавишу прыжка, а перс прыгнул через ~0.5 сек.). А при приземлении, нужно будет на время проигрывания анимации отключать управление героем (чтобы, например, при зажатой клавише управления, анимация не переходила резко из прыжка в ходьбу, или перс не перемещался влево вправо во время проигрывании анимации приземления...) Получится перед прыжком 0.5 сек., после те же 0.5 сек... и уже секунда (примерно) задержки. А эти все моменты очень ощущаются в игре. Можно ускорить анимацию, но тогда она становится почти не заметной... Если сделать всё, что я тут предложил, то получится примерно так: kzbin.info/www/bejne/labRfIyVftacd7M
@stanislavshestak2571
@stanislavshestak2571 3 жыл бұрын
Здравствуйте, такой вопрос. Почему при нажатии кнопки пробел персонаж может улетать в космос? То есть он не падает обратно, а просто начинает подниматься по оси у до бесконечности.
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Приветствую) А сколько Вы его ждали с орбиты? В теории - это может произойти при Gravity Scale = 0 (в Инспекторе в Rigidbody), либо при ошибке в коде (если, к примеру ускорение персу придаётся не один раз при нажатии кнопки, а каждый кадр). Но, скорей всего, если вы делали по уроку, то для условий вашей сцены, у вас слишком большое значение JumpForce. Как Вы, кстати, делали (через velocity или AddForce)? Попробуйте его запустить к Зевсу и пойти попить чаю, посмотреть какой-нибудь видосик, и если минут через 10-15 значения по Y не начнут уменьшаться, то есть большая вероятность, что ошибка в коде. Если же цифры начнут возвращаться к нулю, то проблема в сильно большем, чем нужно значении силы прыжка)
@stanislavshestak2571
@stanislavshestak2571 3 жыл бұрын
@@NoobGameDev большое спасибо за ответ, буду пробовать) Делал через AddForce
@Metteam142
@Metteam142 3 жыл бұрын
Помогите пожалуйста у меня горой(Character) улетает наверх
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Этому 2 основные причины: 1. Слишком большое значение JumpForce 2. В коде (в методе Jump) допущена ошибка (многие пишут Input.GetKey(KeyCode.Space), что значит "клавиша ЗАжата", а нужно Input.GetKeyDown(KeyCode.Space), что значит "клавиша была НАжата") Если это не решит Вашу проблему, то советую зайти на наш Дискорд сервер (ссылка есть в шапке канала), там можно и код и скрины скинуть)
@Metteam142
@Metteam142 3 жыл бұрын
@@NoobGameDev Спасибо)
@Bee_Fed
@Bee_Fed 3 жыл бұрын
У меня такая проблема: при прикосновениях к стенкам, мой персонаж может прыгать как ему вздумается, а сделать слой Wall я не могу, т.к я делаю через tilemap. Как мне это исправить?
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Вам нужно сделать поменьше сферу проверки земли, чтобы она не выходила за бока перса. Другими словами сейчас (скорей всего) когда перс упирается в стену, то сфера проверки земли касается стены, поэтому нужно её уменьшить. Вам бы это показать на картинке, но тут нет такой возможности... Поэтому, если не поняли о чём я, то можете зайти к нам в Дискорд (ссылка в шапке канала), там можно наглядно объяснить)
@Tikarr0
@Tikarr0 3 жыл бұрын
помогите пожалуйста если такая ошибка 4:55 что делать если перс не делает мультипрыжок но и не ходит!(((
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Ошибок Unity не выдаёт? Если нет, то скиньте код, возможно где-то там логическая ошибка. UPD: или попробуйте скопировать код из под видео.
@dpomopomokae
@dpomopomokae Жыл бұрын
чел ультрагипермегасуперхорош
@KapSined
@KapSined 3 ай бұрын
Для таких же гениев как и я, в объекте GroundCheck коллайдер двигать НЕНУЖНО, нужно двигать сам объект с коллайдером
@zinya328
@zinya328 3 жыл бұрын
А что делать, если во вкладе Create нету Physics Material 2D, а только Physics Material ?
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Он немного поглубже спрятан (может, кстати, от версий Unity отличается - нужно проверить). Попробуй тут поискать: Create -> 2D -> Physics Material 2D
@people278
@people278 Жыл бұрын
UnassignedReferenceException: The variable GroundCheck of PlayerMovement has not been assigned. You probably need to assign the GroundCheck variable of the PlayerMovement script in the inspector. Что делать?
@people278
@people278 Жыл бұрын
Я справился
@Lamo1992
@Lamo1992 Жыл бұрын
@@people278 подскажи пожалуйста как ? нет понимания что не так
@people278
@people278 Жыл бұрын
@@Lamo1992 привет, всё что я помню с того времени - я всё начал заново, и всё вышло, я уже не помню что я точно делал, извини, это было 3 месяца назад
@Гыгы
@Гыгы Жыл бұрын
Там же всё написано. В инспекторе не выбрали Граунд чек, видимо в ячейку забыли перетащить тот объект, который под персонажем создавался. Это было на моменте 4:14
@Virfi_
@Virfi_ 2 жыл бұрын
Можете, пожалуйста, объяснить: когда я даю полу слой ground, пол пропадает, но только в режиме конструирования, а если запустить игру, то всё появляется как было. Да, при этом ничего не портится, но приносит это малейшие неудобства, но можно ли это чуть-чуть исправить?
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Боюсь, что я с подобным не сталкивался... Единственное, что приходит в голову - это то, что Вы могли отключить видимость Gizmos в окне Scene, а при запуске в окне Game всё видно. Либо что-то не так с осью Z. Например слой земли находится слишком близко к камере или за ней, проверьте этот момент. В 2D хорошей практикой будет следить за тем, что по оси Z объекты были в нуле (кроме камеры). И что-то больше идей нет... Советую, зайти к нам на Дискорд сервер (ссылка есть в шапке канала и описании) и задать данный вопрос в соответствующем канале. В идеале записать видео проблемы. И либо я, либо кто-то из ребят попробуем в этом разобраться)
@Virfi_
@Virfi_ 2 жыл бұрын
@@NoobGameDev хорошо, спасибо. Не то чтобы это прям сильно замедляло процесс, но доставляет неудобство
@enafings9625
@enafings9625 2 жыл бұрын
@@Virfi_ попробуй нажать f мне помогло
@НикитаСолонский-я1р
@НикитаСолонский-я1р 4 жыл бұрын
Почему у меня исчезли из вида земля, она как бы есть(когда нажимаешь Play), но в редакторе её нет
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Т.е. нет картинки Земли? Её не видно ни в окне "Game", ни в окне "Scene"? А если нажимаете "Play", то перс падает и стоит, как бы в воздухе? Если ответы на все вопросы "Да", то 90%, что у вас на объекте отключен компонент "Sprite Renderer". Выберите в Иерархии объект (Землю) и в Испекторе поставьте галочку у компонента "Sprite Renderer"... Помогло? Или я что-то не так понял?
@НикитаСолонский-я1р
@НикитаСолонский-я1р 4 жыл бұрын
@@NoobGameDev спасибо
@flynntaggart9973
@flynntaggart9973 2 жыл бұрын
а что делать если персонаж медленно падает ?
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Обычно такое происходит, если где-то обнуляется скорость, например в управлении: rb.velocity = new Vector2(inputVector.x * speed* Time.deltaTime, 0f); И вот медленное падение будет как раз-таки из-за нуля по Y вот здесь : " 0f);" Там необходимо передавать текущую скорость по Y: rb.velocity = new Vector2(inputVector.x * speed* Time.deltaTime, rb.velocity.y); Тогда падение будет происходить адекватно. Так же нужно иметь ввиду, что если управление сделано через Input.GetAxis, то когда не происходит нажатия на клавиши управления, то и по X и по Y значения будут равны нулю.
@flynntaggart9973
@flynntaggart9973 2 жыл бұрын
@@NoobGameDev спасибо
@comachine
@comachine 11 ай бұрын
гравитацию можно еще увеличить
@vlandarin6196
@vlandarin6196 4 жыл бұрын
привет почему когда персонаж прыгает то на земле анимация не заканчивается?
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Видимо, та же проблема с переходами. Просмотрите их все, у них в настройках не должно быть галочки Has Exit Time. Или анимация зацикливается (по кругу играет). В таком случае в Аниматоре дважды кликните по интересующей Вас анимации и уберите галочку с поля Loop (оно отвечает за зацикливание анимации)
@vlandarin6196
@vlandarin6196 4 жыл бұрын
@@NoobGameDev спасибо
@keirill
@keirill 2 жыл бұрын
Assets\Scripts\PlayerController.cs(20,9): error CS1955: Non-invocable member 'PlayerController.jumpForce' cannot be used like a method.
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Вы пытаетесь jumpForce использовать как метод... Что у Вас в 20-й строке?
@gag6674
@gag6674 2 жыл бұрын
Привет как исправить проблему? У меня движение совмещается с анимацией прыжка
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Привет. Как будто бы ошибка где-то в переходах... Но такое нужно разбирать "воочию", если не получится исправить, то посетите сервер в Дискорд (ссылка есть в шапке канала), там при помощи скриншотов и коллективного разумуса это точно можно будет решить))
@kolyaalekseev409
@kolyaalekseev409 4 жыл бұрын
Все норм, но не понимаю пару вещей: 1) Когда персонаж упирается в стену его начинает трести. 2) не совсем понял про прыжок, т.е. я поставил гравитацию на 30 (у всех объектов), но падать быстрее он не стал, а идёт обычный прыжок( он занимает много времени и позволяет банихопить) Подскажите как исправить :D
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Начну со второго: нужно -30 (минус 30), а то он вообще как на Луне должен скакать) И насколько я знаю, то BHOP - это тема 3D игр (особенно CS, Doom) суть которой перемещаться быстрее при помощи распрыжки. Или имеется ввиду, что персонаж прыгает над землёй? Если да, то нужно уменьшить значение переменной CheckRadius в Инспекторе или коде. А вот с тряской у стены, это не совсем понятно... Происходит быстрое переключение анимаций или небольшое подпрыгивание или наоборот проваливание? Просто звучит знакомо, что-то похожее было у меня, но проблема была в быстром переключении анимаций из-за неправильных условий в переходах в Аниматоре.
@Paul_Design
@Paul_Design 3 жыл бұрын
а что делать если visual studio говорит что addforce и velocity требует ссылка на обьект? у меня все как у тебя
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Это всё свойства и методы компонента Rigidbody. В моём примере есть переменная "rb" типа "Rigidbody2D". А в в методе "Start" происходит поиск и запись ссылки на компонент Rigidbody2D в переменную "rb". И уже при помощи этой ссылки (чтобы каждый раз заново не искать компонент) происходит обращение к необходимым свойствам и методам: rb.velocity... rb.AddForce()...
@Paul_Design
@Paul_Design 3 жыл бұрын
@@NoobGameDev спасибо
@ImkuliN
@ImkuliN 4 жыл бұрын
почему я не могу переименовать свой гейм обджект?
@NoobGameDev
@NoobGameDev 4 жыл бұрын
В окне "Hierarchy" правой кнопкой мыши нажимаете на интересующий Вас объект и в выпадающем списке выбираете "Rename". Вводите новое имя, нажимаете "Enter". Обязано сработать)
@whitenight7399
@whitenight7399 2 жыл бұрын
А что делать если попробовал 2 способа прыжка,но персонаж летит наверх,вроде в коде всё правильно написал.Заранее спасибо!
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Скорей всего нужно лишь подобрать нужное значение силы прыжка. Попробуйте прыгнуть и подождать минуту, а в это время смотрите за положением перса по Y (в Инспекторе). Если оно будет расти, а потом через какое-то время (10 - 30 сек. - минуту) значение начнёт уменьшаться, то проблема в очень высоком значении силы прыжка - нужно уменьшать (через Инспектор)
@whitenight7399
@whitenight7399 2 жыл бұрын
@@NoobGameDev Спасибо!
@crazydevil3460
@crazydevil3460 2 жыл бұрын
вот у меня вопрос, мне не нужен будет прыжок от стен и коллайдер персонажа у меня квадратный, соответственно ему нужна другая проверка земли, иначе он сможет прыгать только из середины блока, как мне сделать нормальный триггер земли, ведь если я попытаюсь увеличить радиус, то он начнёт считать стены за землю и отпрыгивать от них, как сделать триггер либо хитбоксом самого персонажа и сделать отдельный слой для стен, либо сделать как в обучение юнити и добавить разных состояний прыжка и не используя слои. Можете рассказать про 2 этих способа или рассказать про другие варианты ?
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Совсем не понял про прыжок из середины блока... ) Данный вариант, на мой взгляд, наиболее универсален. Согласен, что он немного запутан (всё-таки одно из первых видео - буду переделывать), но он прекрасно работает и с квадратными персами и с круглыми, так как это по сути значения не имеет. Есть просто куча способов проверки: 1. Кастами (лучами, лучами похожими на квадрат, круг или произвольный коллайдер) - самый популярный Raycast 2. Областями (кругами, квадратами, коллайдерами, точкой) - популярный OverlapCircle (как в видео) 3. Контактами коллайдеров (через оnTrigger и onCollision, либо при помощи методов getContacts или isTouching) И для всех этих способов можно применять ещё и ContactFilter2D, в котором можно настроить направления нормали для считывания, слой для считывания и пр. Из того, что Вы хотите, больше всего подходит использовать проверку контакта коллайдера вместе с фильтром контактов... Что-то типа этого: _onGround = _mainCollider.isTouching(_contactFilter); Естественно сделав поля для основного коллайдера и фильтра (и настроив его). Каждый из способов имеет свои преимущества и недостатки. Что-то можно просто и наглядно отобразить, что-то из этого остаётся только представлять в голове. В видео что-то среднее)) Я понимаю, что от моего ответа Вам вряд ли стало легче)) Потому что для начинающих слишком много информации, поэтому можете посетить Дискорд сервер (ссылка есть в шапке канала) там можно это всё показать более подробно, а так же посмотреть короткое видео по тому же способу, что и в данном видео, только чуть проще (возможно Вы его и оставите): kzbin.infoM0F-XIxdKIU
@arnaydohneh864
@arnaydohneh864 2 жыл бұрын
в таком случае ты создаешь 2 слоя коллайдеров. 1 - для onGround. Чтобы персонаж ходил. Другой слой - чтобы ты строил стены и.т.п С тайлмапами так же. Создаешь композит коллайдер для персонажа, чтобы он ходил .и.тп. 2й - для стен.
@arnaydohneh864
@arnaydohneh864 2 жыл бұрын
и еще, можешь настроить в анимациях, Чтобы CheckGround - дчоерний объект персонажа, тоже двигался и был всегда впереди.
@bingogame225
@bingogame225 6 ай бұрын
У меня анимация прыжка обратно в анимацию покоя не переходит
@glebmatusevich6190
@glebmatusevich6190 2 жыл бұрын
0:11 мне кажется лучше писать не "public" а "[SerializeField] private
@okurokokurok6997
@okurokokurok6997 Жыл бұрын
Блин, почему-то у меня пробел срабатывает через раз и игрок прыгает не всегда. Не знаете что могло вызвать данную проблему?(Код прыжка такой же как у Вас)
@NoobGameDev
@NoobGameDev Жыл бұрын
Это один из минусов, когда нажатие клавиши считывается в FixedUpdate. Все нажатия от игрока лучше читать в обычном Update. Типа этого: void Update() { if (Input.GetKeyDown(KeyCode.Space)) { /* вызов метода прыжка */; } }
@okurokokurok6997
@okurokokurok6997 Жыл бұрын
​@@NoobGameDev Спасибо Вам огромное за ответ, я Вам очень сильно благодарен)
@NIGHTMAREMINECRAFT_
@NIGHTMAREMINECRAFT_ 10 ай бұрын
у меня почему то персонаж вообще не прыгает(( вот если что код:using UnityEngine; public class MovePlayer : MonoBehaviour { public float speed = 30.0f; public float jumpForce = 350.0f; private Rigidbody2D rb; void Start() { rb = GetComponent(); } void Update() { Jump(); float moveX = Input.GetAxis("Horizontal"); rb.MovePosition(rb.position + Vector2.right * moveX * speed * Time.deltaTime); } void Jump() { if (Input.GetKeyDown(KeyCode.Space)) { rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); } } }
@medal2003
@medal2003 11 ай бұрын
Почему когда я просоо поставил новую землю и там все правильно сделал у меня пкрестала анимация работать и теперь onGround всегда включен даже если я не на земле
@medal2003
@medal2003 11 ай бұрын
Уже не надо я случайно поставил слой Ground к GroundCheck
@dokers2084
@dokers2084 2 жыл бұрын
Можно ли сделать прыжок векторным? Типо не импульс будет его толкать, а он будет более "картонным". Классический вариарнт с импульсом может очень много багов образовать, например если очень быстро в прыжке допрыгнуть до земли и прыгнуть еще раз значения приумножатся и прыжок будет очень большим)
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Ну, как по мне, так самым простым, настраиваемым и стабильным вариантом является задание скорости. Т.е. что-то типа: rb.velocity = new Vector2(rb.velocity.x, Y); где вместо Y указывается скорость (типа сила) прыжка. Вполне себе рабочий и удобный вариант) Но стоит учитывать, что в таком случае скорость с которой перс падает и скорость для прыжка суммироваться не будут. Другими словами персонаж может падать с небоскрёба, а перед землёй, нажав прыжок, подпрыгнет вверх и мягонько приземлится... Если это позволяет геймплей, то всё ок))
@huseeads
@huseeads 3 жыл бұрын
ребят, не знаю в чем проблема, не работают анимации. При прыжке появляется второй персонаж в стороне, с анимацией. как это фиксить?
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Оу... )) Не сталкивался с таким. В идеале бы это увидеть (например в Дискорд или ВК). А пока что могу предположить, что например анимации покоя и ходьбы были сделаны для одного объекта (допустим Player или Character), а анимация прыжка, например, для дочернего. По идее, такое может произойти, если настраивать, допустим тотже GroundCheck и переключиться на Animation и начать делать анимацию (не выделив перса в Иерархии). Нужно проверить: выбрать перса в Иерархии, открыть вкладку Animation, раскрыть список анимаций и посмотреть есть ли там анимация прыжка. И тоже самое сделать для дочерних объектов. Соответственно, если будет у дочернего, то удалить, а в родительский (перса) добавить. И ещё, каким образом делали анимацию прыжка, через запись (красная круглая кнопка в Animation)? И как это визуально выглядит? Перс раздваивается? Проигрывается анимация покоя и анимация прыжка? Или объект, коллайдер персонажа остаётся на месте, а спрайт прыжка летит в сторону?
@YmeUla
@YmeUla 3 жыл бұрын
Я не уверен но мне кажется проверка касания усложнена. Почему не сделать через OnCollisionEnter() или OnTriggerEnter() ? Серия видео конечно зачетная .
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Спасибо, приятно) Можно сделать и так, но в таком случае, персонаж будет думать, что он на земле даже если он головой или любой другой частью коллайдера коснётся платформы. Или, например, встанет около стены (со слоем или триггером типа ground) и сможет прыгать, как и до проверки земли. Поэтому именно для проверки "на земле ли стоит перс" подходит либо доп. объект (GroundCheck), либо Raycast. По крайней мере, лично я так считаю)
@YmeUla
@YmeUla 3 жыл бұрын
@@NoobGameDev А почему не вынести саму проверку в отдельный скрипт который бы крепился к дочернему объекту(тригеру)
@NoobGameDev
@NoobGameDev 3 жыл бұрын
@@YmeUla Ну, тут, как говорится "хозяин - барин". Конечно, можно и так. Можно и управление вынести в отдельный класс и прыжок, и отражение спрайтов. В будущем я так, вероятнее всего, и переделаю +/- , чтобы можно было прикрутить одно и то же и для перса и для enemy, но для уроков (особенно начальных) мне показалось, что так будет проще и понятнее) Как лучше сделать, буду разбираться после добавления всех основных механик)
@bymajkakryta1474
@bymajkakryta1474 3 жыл бұрын
@@NoobGameDev , у меня собственно и присутствует данная проблема, хотя метод такой же как и у вас, не знаете почему такое возможно?
@NoobGameDev
@NoobGameDev 3 жыл бұрын
@@bymajkakryta1474 Какая именно? Если стена имеет слой земли и когда перс подходит к ней вплотную, то может совершать кучу прыжков? Если так, то нужно уменьшить радиус GroundCheck, чтобы он не выходил за пределы коллайдера перса, другими словами он должен быть немного уже персонажа (не должен выходить за его границы, чтобы не пересекаться со стеной)
@askarbinka182
@askarbinka182 2 жыл бұрын
привет, выдает такую ошибку: Assets\script\playermove.cs(46,59): error CS0103: The name 'CheckRadius' does not exist in the current context вписал все правильно, пробовал и это, и GroundCheckRadius Помоги пожалуйста, я новичок в этой сфере, и много чего недопонимаю.
@NoobGameDev
@NoobGameDev 2 жыл бұрын
Просто Вы пытаетесь использовать переменную, которая ещё не была объявлена. Речь о "GroundCheckRadius". Скорей всего была пропущена строка: private float GroundCheckRadius; В описании есть код, сравните его с Вашим или скопируйте, должно починиться)
@AsKaRoK40
@AsKaRoK40 2 жыл бұрын
@@NoobGameDev Спасибо помогло! Я себе еще сделал функцию чтобы когда игрок шел в разные стороны , его картинка от зеркаливалась, но когда я запускаю игру, то колайдер смещается в сторону, и от этого функция ломается.
@NoobGameDev
@NoobGameDev 2 жыл бұрын
@@AsKaRoK40 Не совсем понял о чём речь... Если частенько возникают вопросы, то советую присоединиться к нашему Дискорд-серверу (ссылка есть в шапке канала). Там и скриншоты можно присылать и людей много - быстрее ответ получить можно)
@aynmax
@aynmax 4 жыл бұрын
у меня проблема, маленькая, есть задержка перед переходом из анимации прыжка в любое другое состояние, с каким то шансом, а в большинстве прыжков переход происходит мгновенно
@NoobGameDev
@NoobGameDev 4 жыл бұрын
Скорей всего, в переходах от прыжка к другим анимациям у Вас включен выход из анимации по её завершению (стоит галочка Has Exit Time - уберите её). Ещё могут быть не корректно заданы (или не заданы вовсе) условия перехода (onGround = true / onGround = false). Из-за Has Exit Time анимация сменится только тогда, когда закончится текущая. Т.е. в вашем случае зачастую анимация успевает проигрываться за время вашего прыжка. А иногда (допустим при запрыгивании на платформу) может доигрываться анимация прыжка, когда по логике должна идти анимация покоя, к примеру)
@daniilgorin5380
@daniilgorin5380 3 жыл бұрын
@@NoobGameDev Спасибо, помог)
@zhasim
@zhasim 2 жыл бұрын
Кто-нибудь знает для Visual Studio Code расширения, чтобы как на видео при написании Physics2D. выбивало методы все, а то сниппетов накачал, а кроме базовых не находит
@NoobGameDev
@NoobGameDev 2 жыл бұрын
У меня 2 расширения стоят, с которыми всё норм работает: 1. C# (C# for Visual Studio Code (powered by OmniSharp)) 2. Debugger for Unity (Unity debugger extension)
@Ainn79
@Ainn79 2 жыл бұрын
лично я из-за этого удалил vsc и скачал vs, думаю и тебе стоит)
@zhasim
@zhasim 2 жыл бұрын
@@Ainn79 так и сделал
@hotctrims1077
@hotctrims1077 2 жыл бұрын
У меня не прыгает персонаж все сделал как в видео но он не прыгает ошибок в коде нет
@hotctrims1077
@hotctrims1077 2 жыл бұрын
смотрю по анимации он постоянно прыгает вместо покоя
@NoobGameDev
@NoobGameDev 2 жыл бұрын
@@hotctrims1077 Проверьте видит ли он вообще землю (в Инспекторе onGround с галочкой)? Основная проблема в этом уроке обычно в размерах коллайдера (мой косяк, объяснил слишком запутанно - буду переделывать). Но, возможно, проще будет вернуться к состоянию, когда перс мог бесконечно много прыгать и ограничить прыжки вот этим способом: kzbin.infoM0F-XIxdKIU Или, если есть возможность, можете посетить дискорд сервер (ссылка в шапке канала есть) там намного проще всё показать и объяснить)
@hotctrims1077
@hotctrims1077 2 жыл бұрын
@@NoobGameDev сейчас зайду в дс
@hotctrims1077
@hotctrims1077 2 жыл бұрын
он попросту не прыгает хз попробовал даже калайдер убрать сдвинуть и тд жаль я в коде 0
@ykrop2004
@ykrop2004 2 жыл бұрын
@@hotctrims1077 GetKeyDown не работает нормально в FixedUpdate его надо в обычный Update. Сам с такой проьлемой столкнулся и решил.
@РостикВасильев-о9с
@РостикВасильев-о9с 3 жыл бұрын
Здравствуйте, помогите пожалуйста!!!!!!!!! Решил применить ваш способ что бы пофиксить проблему мультипрыжка. Но почему то оно ведет себя крайне странно. Я повторил все в точности как у вас видео но проблема осталась, но самое странное то что если я поменяю слой на любой другой то оно вообще не прыгает (то есть код работает но почему то оно всегда передает в переменную True). А и еще если отключить колайдер у земли, оно тоже не будет прыгать. Пожалуйста помогите и скажите где именно я туплю, зарание большое спасибо))
@NoobGameDev
@NoobGameDev 3 жыл бұрын
Приветствую!) Я так понял, что у Вас onGround постоянно true? В таком случае, скорей всего у вас слишком большое значение в переменной GroundCheckRadius (в Инспекторе). Попробуйте сделать так: В ф-ю Start добавьте следующую строку: GroundCheckRadius = GroundCheck.GetComponent().radius; Она автоматически считает радиус коллайдера объекта GroundCheck (зелёного круга в ногах перса) и будет использовать его, как радиус сферы проверки земли. Или можете скопировать код по ссылке под видео (он уже с этим добавлением)
@РостикВасильев-о9с
@РостикВасильев-о9с 3 жыл бұрын
@@NoobGameDev Спасибо вам большое) Теперь все работает как надо )
@NoobGameDev
@NoobGameDev 3 жыл бұрын
@@РостикВасильев-о9с Круто, спасибо, что сообщили результат!) Надо всё таки, наверное, перезаписать видео, чтобы люди не путались)
@ZabavaTV
@ZabavaTV Жыл бұрын
Хорошо объясняешь! Но я правда не могу разобраться - у меня игрок прыгает с какой-то периодичностью чтоли. Грубо говоря, не всегда срабатывает пробел. В апдейте функция джамп есть...
@NoobGameDev
@NoobGameDev Жыл бұрын
Прыжок разной высоты? Или иногда не срабатывает при нажатии пробела?
@ZabavaTV
@ZabavaTV Жыл бұрын
@@NoobGameDev да, иногда не срабатывает пробел. Грубо говоря, через раз
@ZabavaTV
@ZabavaTV Жыл бұрын
Ладно, решил проблему ЭдФорсом) Через велосити почему-то такие траблы...
@Федор-ь5з
@Федор-ь5з 2 жыл бұрын
Лучший
@olsney
@olsney Жыл бұрын
Как смотреть, если качество только 360р?(
@NoobGameDev
@NoobGameDev Жыл бұрын
Принудительно выбрать получше. Там конечно не 2К, но 720p точно имеется)
@olsney
@olsney Жыл бұрын
@@NoobGameDev c компа 1080 есть, с телефона не было) странно) Мб баг какой-то был)
#5 - Контролируемый прыжок в Unity 2D
3:07
Noob Game Dev
Рет қаралды 14 М.
Маусымашар-2023 / Гала-концерт / АТУ қоштасу
1:27:35
Jaidarman OFFICIAL / JCI
Рет қаралды 390 М.
24 Часа в БОУЛИНГЕ !
27:03
A4
Рет қаралды 7 МЛН
JISOO - ‘꽃(FLOWER)’ M/V
3:05
BLACKPINK
Рет қаралды 137 МЛН
Improve your Platformer’s Jump (and Wall Jump) | Unity
8:12
Dawnosaur
Рет қаралды 136 М.
СОЗДАЛ ИГРУ ИСПОЛЬЗУЯ ТОЛЬКО ChatGPT
6:01
Robert Sergeev
Рет қаралды 247 М.
Animated Character Jump (Unity Tutorial)
16:03
Ketra Games
Рет қаралды 87 М.
Маусымашар-2023 / Гала-концерт / АТУ қоштасу
1:27:35
Jaidarman OFFICIAL / JCI
Рет қаралды 390 М.