По моему это лучший тутор для новичков, в твоем плейлисте есть все необходимое для базы, не представляешь как я благодарен, ведь именно найдя твои видосы процесс пошел куда быстрее!!))
@bogdan9423 Жыл бұрын
Спасибо большое, очень полезный и очень интересный урок! Прям реально без преувеличения, очень хорошие объяснения, мало кто так подробно останавливается на отдельных важных моментах. Спасибо)
@sensei70593 жыл бұрын
Отдельное спасибо за то, что выкладываешь код!
@papytoncatleta8753 Жыл бұрын
прошло много времени с выхода видео, но вы всё ещё отвечаете на комментарии, спасибо вам за туториалы
@ma_liberta Жыл бұрын
вы просто лучший, всё работает!!! спасибо огромное! столько разборов посмотрела
@hakloi9 ай бұрын
Ребят, у кого прыжок все еще бесконечный - внимательно посмотрите на layer. он везде по default должен быть, кроме объекта Ground я на этом стопорилась и искала баги в коде да прибудет с вами геймдев сила ))
@Belovikzzz2 ай бұрын
Спасибо!
@oldborodach3 жыл бұрын
Прикольно спс за урок, но можно в следующий раз для чайников по медленнее и так норм контент такой можно и продлить в минутах я думаю все досмотрят!🤝
@NoobGameDev3 жыл бұрын
Спасибо, учту на будущее!)
@karliknos87043 жыл бұрын
Дело вкуса. Мне наоборот, нравится когда побыстрее. Если что-то не разглядел, ставлю скорость на 0.5 и пересматриваю. Так удобнее: пробегаться по общей информации и заострять внимание на важной, а то недавно смотрел урок по блендеру, семь минут кулстори от автора, чтоб показать где включается одна галочка. И вроде бы спасибо ему, смог закрыть свой вопрос, но чёт выбесил))
@Madl_Madl4 жыл бұрын
Вот бы такого учителя в колледже, не то что мои учителя в 3-ем курсе все еще дают уроки по Microsoft World. Спасибо большое дальше буду смотреть тебя)
@NoobGameDev4 жыл бұрын
Я рад) Видел Вы там писали, что что-то не получалось... Не успел ответить( Разобрались?
@Madl_Madl4 жыл бұрын
@@NoobGameDev Да, во всем разобрался. Оказывается я какие-то строки в скриптах я пропускал, поэтому не работало прыжок. Спасибо большое, буду дальше смотреть твои видео
@Madl_Madl4 жыл бұрын
@@NoobGameDev Можно было бы записать урок как прицепить камеру к персонажу или как создавать уровни и врагов. Надеюсь в будущем у вас будет такое. Желаю тебе удачи)
@NoobGameDev4 жыл бұрын
@@Madl_Madl Есть такое в мыслях) В идеале, я планировал писать игру и после добавления в неё какой-то "возможности", делать на эту тему урок) Чтобы и самому не забыть и с людьми поделиться. Т.е. на выходе должна получиться игра из данных уроков... Или уроки из игры) Только из-за этих видео, время создания самой игры увеличится раз в 10-15, видимо... В общем, задумка такая. Спасибо за поддержку!) Будем делать дальше)
@Madl_Madl4 жыл бұрын
@@NoobGameDev Это правильно, чтобы потом не забыть что в прошлом изучать. А так то это полезно не только тебе, но и простым людям которые в этом интересуются. Но все равно желаю тебе удачи, буду дальше смотреть твои видео)
@MrSleepydragon2 жыл бұрын
Привет! Отличные уроки! Объясняешь такие мелкие детали, которые даже на форумах толком не найти. И уж тем более не сравнить со всякими "онлайн-университетами", в один из которых я вляпался по незнанию. Спасибо :)
@Jetbullet7772 жыл бұрын
Привет, а не подскажешь какой университет? Сейчас сам раздумываю пойти на курсы по геймдизайну. Но столкнулся с такой забавной темой... Noob Game Dev объясняет в разы лучше, чем преподаватель одного из университетов, записи уроков которого у меня есть. Тут все структурировано, четко и без лишней воды. За 5-10 мину объясняет то, на что тому преподавателю понадобилось полтора часа. Вот теперь не уверен...
@MrSleepydragon2 жыл бұрын
@@Jetbullet777 , дабы избежать рекламы, намекну - "коробка навыков". Касательно обучения - если есть деньги (это главное), если нужен порядок (систематизация) обучения, если нужен диплом, если нужны преподаватели - смело приобретай курс. Но. Почти всё, что я знаю, в конечном итоге получено из KZbin. Преподаватели - среднячок, один норм попался ("вот тут и тут скрипт поправить, тут отлично сделано, тут посмотри, как лучше сделать"), второй откровенный раздолбай ("а ну норм идём дальше"). Систематизация обучения есть, но в ней много дыр для перфекционистов. И пока неясно, где и как пригодится упомянутый диплом. В IT-компаниях его не жалуют, это точно.
@Jetbullet7772 жыл бұрын
@@MrSleepydragon диплом, понятно, что никому не нужен. Важнее портфолио и реальные знания. Мне бы с программированием сейчас разобраться…
@lidjest98883 жыл бұрын
Спасибо.. Спасибо. Буду вас везде рекомендовать, где только можно.
@danyasklyanichenko8173 жыл бұрын
Спасибо была проблема с анимацией прыжка, а теперь я знаю как её решить.
@zuba_tv11 ай бұрын
Какой способ лучше 1 или 2 в плане правильности и в дальнейших изменениях
@gamecreature82632 жыл бұрын
Спас братишка Одинцовский респект!
@egorbragin31912 жыл бұрын
Уроки замечательные! Я ими иногда пользуюсь, когда делаю платформеры и т.п.
@MapperoftheHorde4 жыл бұрын
Как же хорошо всё и понятно!
@NoobGameDev4 жыл бұрын
Спасибо! Стараемся)
@mtythere3 жыл бұрын
Огромное спасибо за видео, объясняете довольно доходчиво, а самое главное - кратко.))
@NoobGameDev3 жыл бұрын
Спасибо)
@blackmercy-il9me3 жыл бұрын
@@NoobGameDev видео неплохое, но за такой код и по рукам могут ударить
@NoobGameDev3 жыл бұрын
@@blackmercy-il9me Я знаю (( Я не Сакутин, чтобы ревьюшить код сеньёров... Мой уровень довольно любительский... Я никогда себя не позиционировал, как профи, не преподносил свои видео, как истину в первой инстанции, и уж тем более никогда не продавал данные уроки, обещая что люди после них смогут работать в крупных компаниях) Потому и название у канала такое) Изначально это всё планировалось, как заметки для себя, чтобы не забыть, что и как я сделал в проекте... Поэтому считаю, что такие косяки в коде в моём случае допустимы (по крайней мере, на данном этапе развития канала, да, и меня, как программиста-любителя). Но могу Вам обещать, что я буду стараться выйти на адекватный уровень, так как знаю, что мои знания достаточно далеки от идеала и мой код далёк от приемлемого уровня. Каждый день я узнаю, что-то новое и всё больше замечаю пробелов в различных областях. Спасибо Вам за этот "шлепок по заднице", уверен, он меня подстегнёт к детальному изучению основ) Так же, если Вас не затруднит, то буду благодарен, если дадите несколько ссылок на годных авторов или на какие-либо ресурсы, которые смогут подтянуть меня в кодинге на C# под Unity!)
@godfather7695 Жыл бұрын
В методе addforce надо добавлять forcemode.impuls и делать проверку на velocity по вертикали, чтоб она была меньше скажем 0,1f тогда не будет даблджампа
@kriper_4062 Жыл бұрын
Можно код?
@Raikis112 жыл бұрын
Все написал правильно. Ошибку не выдает у обоих способов. Прибавил высоту прыжка и все ровно когда я нажимаю на пробел ничего не происходит
@sapfi14954 жыл бұрын
У меня вечная проблема с вашими уроками. Вроде логически код у вас верен. Но юнити не принимает его вообще. Что с хождением(исправила потом самостоятельно), что с прыжками. Я пытаюсь в дебри не заходить и остановилась на самом начале - до 0:53. И персонаж не прыгает. Просто не реагирует никаким боком.
@NoobGameDev4 жыл бұрын
Может, Вам мой метод преподнесения информации не подходит... Попробуйте ещё кого-нибудь из авторов посмотреть, я и сам всегда ищу, как минимум две точки зрения на решение проблемы. Но если хотите - можем попробовать разобраться, что не так) Скиньте в комментарий (или в vk.com/evgen_orlov ) код, с которым Вы сейчас мучаетесь. И скажите, что именно Вы исправляли в "ходьбе", чтобы код заработал так, как Вы хотели?
@devrimport2 жыл бұрын
Спасибо, у тебя самый понятный код :)
@feroindiary3462 жыл бұрын
а как вы узнали о значении -30 для 2д платформеров? Я бы почитал сайт где об этом написано, наверное много полезного будет. 2:23
@NoobGameDev2 жыл бұрын
На самом деле я слышал это в нескольких уроках на данную тему... Потом попробовал сам и мне это значение тоже понравилось (похоже на большинство динамичных платформеров). Насколько это истина я не знаю и точного источника, к сожалению, сказать не могу)
@xaos8192 Жыл бұрын
Почему я не могу добавить PhysicMaterial2D, мне предлагает только PhysicMaterial
@NoobGameDev Жыл бұрын
После нажатия Create выберите пункт 2D, в нём будет PhysicsMaterial2D
@phoenix281011 ай бұрын
Я сделал все как на видео и персонаж прыгает но высота прыжка постоянно разная в зависимости от силы нажатия на пробел как это исправить?
@zuba_tv11 ай бұрын
Попробуй в Void Jump в if заменить getkeydown, на getkeyup
@denis_na_yuge11 ай бұрын
Автор! Чтобы AddForce работал нормально нужно дописать в скобках ForceMode2D.Impulse т.е.: rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); и тогда он нормально прыгает при обычных значениях jumpForce
@NoobGameDev11 ай бұрын
Есть такое. Не помню с какой версии движка прям стало необходимо явно указывать ForceMode. Видео устарело) Надо переделывать 👍
@I_ne_rei2 жыл бұрын
У меня персонаж прыгает от стены , объект для определения на стену не залазит, радиус в скрипте а на объекте равны, но on Ground у стены равняется true
@NoobGameDev2 жыл бұрын
Скорей всего, радиус проверки земли выходит за границы коллайдера перса. Другими словами шире, чем перс. Это от части моя вина, что запутанно объяснил... Но попробуйте дописать эти строки перед последней фигурной скобкой " } " в скрипте: private void OnDrawGizmos() { Gizmos.color = Color.red; Gizmos.DrawWireSphere(GroundCheck.position, GroundcheckRadius); } В результате появится красная полая сфера, которая будет истинным радиусом проверки (ориентируйтесь на неё) и изменяйте радиус через Инспектор (GroundcheckRadius) таким образом, чтобы упёршись персом в стену, данная сфера не доставала до стены. Если будет непонятно или если я не правильно понял суть вопроса, то можете зайти к нам на Дискорд сервер (ссылка есть в шапке канала) - там проще объяснить и показать)
@I_ne_rei2 жыл бұрын
@@NoobGameDev Спасибо
@fasbodeveloper8170 Жыл бұрын
спасибо большое до тебя у меня не получалось
@shushard4 жыл бұрын
очень приятно слушать)
@NoobGameDev4 жыл бұрын
Аххах!)) Спасибо) Правда, я не доволен ни звуком, ни дикцией, но буду работать над этим... Надеюсь, будет становиться только лучше)
@538h4 ай бұрын
Спасибо большое, но у меня появился баг при котором прыгать бесконечно можно стоя в плотную к стене. Как это можно исправить?
@saytamaaw Жыл бұрын
после того как написала код для чекера-пустышки в плейере , мой перс перестал прыгать , вроде все написала правильно , нигде нету ошибок , он по просту не прыгает . Помогите
@ВасилийМоисеев-ж6у Жыл бұрын
void ChekingGround() { OnGround = Physics2D.OverlapCircle(GroundCheck.position, checkRadius, LayerMask.GetMask("Ground")); } Попробуй написать код так, у меня получилось
@saytamaaw Жыл бұрын
@@ВасилийМоисеев-ж6у премного благодарна !!
@leg0redd02 жыл бұрын
Большое спасибо! Очень помог!
@kot46243 жыл бұрын
я чуток пакапался и все понял теперь все работает
@fnafut Жыл бұрын
Почему красным подчёркивает rb и jumpForce ? Из первого способа
@zuba_tv11 ай бұрын
Если проблема все еще актуальна добавь в скрипт Rigidbody2 Private Rigidbody2d rb; И в void Start Напиши Rb = getcomponent();
@fnafut11 ай бұрын
@@zuba_tv уже нет, но спасибо
@Данил-г7ъ Жыл бұрын
Здравствуйте можете помочь у меня пишет в Unity, Animator is not playing an AnimatorController
@Данил-г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 Жыл бұрын
Здравствуйте) В коде ничего необычного не вижу. Скорей всего, у вас либо выключен компонент Animator (в Инспекторе), либо сам объект находится в неактивном состоянии, либо у компонента Animator нет ссылки на AnimatorController. Но думаю, что без сриншотов будет сложновато объяснить. Посетите наш Дискорд сервер (ссылка есть в шапке канала). Можете заскринить этот комментарий и попросить помощи там. Со скриншотами всяко понятнее и быстрее получится)
@gandonius_me3 жыл бұрын
Здравствуйте, сделал как все надо, только вот запускаю. Персонаж запускает анимацию и застыват в анимации прыжка и двигается так же, + к этому и пробел не тыкается. В чем может быть проблема? Цикл на jump еще застрял
@NoobGameDev3 жыл бұрын
Очень похоже на то, что перс не "видит" землю... И считает, что он постоянно падает, ну, поэтому и не прыгает соответственно) Попробуйте увеличить размер коллайдера объекта GroundCheck. Или ещё лучше, сперва попробуйте дописать эту строку в функцию Start (как в коде под видео): GroundCheckRadius = GroundCheck.GetComponent().radius; Она автоматически будет вписывать радиус коллайдера в переменную GroundCheckRadius. А так же перепроверьте выбрали ли Вы слой Ground в поле Ground в Инспекторе и находится ли платформа, на которой стоит перс, на слое Ground.
@gandonius_me3 жыл бұрын
@@NoobGameDev Спасибо огромное" Проблема была в слоях, не прикрепил. Теперь проблема осталась другая, как найти physics material 2D? у меня отображается просто physics material
@ПавелЗалётин-я7р3 жыл бұрын
Спасибо,все работает!
@ilexsander64122 жыл бұрын
Что делать если на 0:51 пишет: Assets\movePlayer.cs(32,13): error CS0103: The name ‘onGround’ does not exist in the current context.? Помогите пожалуйста.
@NoobGameDev2 жыл бұрын
Пишет, что Вы не объявили переменную 'onGround', но при этом пытаетесь её использовать, т.е. пропустили строку: private bool onGround = false; Добавьте её где-нибудь вне метода, там где другие переменные объявляются и должно заработать)
@geba35962 жыл бұрын
Привет, я на моменте где добавил onGround и он появился в inspector но когда запускаю и 2 прыжок все равно работает + все время стоит галочка на onGround где допускаю ошибку ?
@geba35962 жыл бұрын
Все разобрался, я не туда добавил Layer
@11_1o92 жыл бұрын
@@geba3596 Расскажи как ты исправил Layer? У меня сейчас так же
@darktermux29324 жыл бұрын
Привет, не нашел твой телеграм, напиши пожалуйста свой, у меня одна МЕГА проблема, когда увидишь у тебя тоже глаза на выкате будут, как мне кажется, это по юнити
@ИлонМаск-р9у Жыл бұрын
Скажите а можно так же сделать рывок по свайпу как в катана зеро и чтоб можно было свайпом задавать направление?
@yourpast1494 Жыл бұрын
Можно, не знаю, как свайпы обнаруживать, но думаю, труда это не составит
@minoddein72054 жыл бұрын
1)Вроде всё нормально,но прыжок получается слишком резким(ForceMode2D.Impulse вообще отключает прыжок по каким-то причинам) 2)Есть ли какая-нибудь документация с разбором методов и классов unity?Просто новичок в этой теме,раньше писал чисто на C#,а ,перейдя сюда,словно очутился в другой вселенной. 3)Неописуемо рад,что наткнулся на твой канал,один из лучших по обучению,а таких мало.Вот что мне нравится - постепенно,структурировано и подмечаешь все детали,спасибо!
@NoobGameDev4 жыл бұрын
1. При использовании AddForce нужно значительно увеличить силу прыжка (jumpForce) так как "velocity" задаёт конечную величину и направление ускорения объекта, а AddForce прикладывает силу к объекту, которая должна задать ему такой импульс, который и силу гравитации преодолеет и ускорение задаст... Поэтому при использовании AddForce и маленьком значении величины jumpForce, может казаться, что прыжка не происходит. Так же у компонента Rigidbody2D, есть такое свойство, как "Gravity Scale" (можно и в Инспекторе изменять), которое является множителем гравитации. При резком прыжке попробуйте поиграться с этим значением (увеличьте раза в 1.5 - 2) 2. Есть официальная документация, на которую все в основном и ссылаются: docs.unity3d.com/Manual/index.html Она довольно обширная, но очень малая её часть переведена на русский, что вызывает сложность при её использовании. А, к сожалению, каналов или ресурсов с хорошим объяснением и широким спектром обозреваемых возможностей Unity, я не встречал. Так же больше всего материала по Unity связано именно с разработкой в 3D. 3. Большое спасибо, рад, что мой контент пришёлся Вам по вкусу))
@minoddein72054 жыл бұрын
@@NoobGameDev , спасибо. Касательно первого, изменение гравитации сказывается на скорость падения - да,а вверх прыжок происходит,как будто телепортация. AddForce сам по себе работает,но при добавлении аргумента ForceMode2D.Impulse - прыжок не работает,вот в чем проблема.Из-за этого я не могу оценить влияние данного параметра,может именно он позволит плавнее выполнять прыжок. rb.AddForce(Vector2.up * jumpforce(3000 стоит)); - работает,но телепортируется вверх rb.AddForce(Vector2.up * jumpforce(3000 и более),ForceMode2D.Impulse); - не работает вовсе
@vasyanya26112 жыл бұрын
Делал прыжок через AddForce. Помещая метод прыжка в Update, персонаж на огромные расстояния одним прыжком улетал(Со значением прыжка 4 улетал до 46 унитов вверх). Помещая метод в Fixed Update прыжок стал адекватным, но не равномерным и каждый третий/четвёртый выходит будто с умноженной высотой. Не могу понять в чём проблема.
@tozen4502 жыл бұрын
Может ты считывал нажатие кнопки с помощью GetButton? Для прыжка лучше ставить GetButtonDown
@zungzao Жыл бұрын
при добавлении Physics Material 2D персонаж, как бы это странно не звучало, перестал останавливаться, то есть даже при отпущенной кнопке движения продолжал двигаться. исправил пока что увеличением Linear Drag, дальше будем посмотреть
@four87722 жыл бұрын
что делать если выдаёт ошибку Assets\Scripts\Player.cs(43,25): error CS0117: 'Physics2D' does not contain a definition for 'OverLapCircle' помогите! прошу!
@NoobGameDev2 жыл бұрын
Если проблема ещё актуально, то C# чувствителен к регистру букв. В данном случае в "OverLapCircle" написана "L", а должна быть "l", т.е. вот так: "OverlapCircle"
@ROBLOX_NOOBIK284 Жыл бұрын
Можете помочь с тем что-бы чел не прыгал в воздухе. Скрипт дайте пж
@poli_merniy2 жыл бұрын
6:51 почему " SetBool" выдаёт ошибку?
@NoobGameDev2 жыл бұрын
Без кода ошибки непонятно... Вот несколько причин: 1. Ошибка в написании. 2. Вы передаёте в Аниматор не логическое значение (true / false), а, например int. 3. В самом Аниматоре нет логической переменной с таким именем.
@poli_merniy2 жыл бұрын
@@NoobGameDev Спасибо я уже все исправил :)
@mrdred26973 жыл бұрын
Здравствуйте, делал все по вашему видео (посмотрел и написал код из: 2, 3 и 4 видео). А сейчас я немогу вставить этот скрипт на персонажа. Выдаёт ошибку вроде этой: - Can't add script Please fix compile errors before creating new script components. Прошу, пожалуйста, помогите!!!
@NoobGameDev3 жыл бұрын
Сорри, поздно увидел сообщение... Проблема в том, что Вы пытаетесь "повесить" скрипт в котором есть синтаксические ошибки. Если проблема актуальна, то перепроверьте новый скрипт (возможно, где-то пропущен символ ";" ) VisualStudio такое должен подчёркивать. А если он этого не делает, то есть подозрения, что он у Вас и с Unity не связан... Поэтому ещё рекомендую глянуть вот это видео (лишним точно не будет): kzbin.info/www/bejne/rWmtXqaoi56osNk
@mrdred26973 жыл бұрын
@@NoobGameDev Хорошо, спасибо, проверю, но хочу уточнить что я работаю на юните которая идет на 32битную windows 7 (то есть Unity 5.6.7f1). И VisualStudio у меня нет. Я подключил к Unity Visual Studio Code (и скачал все что связано с C# и с самим Unity)
@NoobGameDev3 жыл бұрын
@@mrdred2697 Ну, VS Code, если правильно настроен (указан в Unity, как редактор кода хотя бы), то тоже должен выделять подобные ошибки...
@Gnek692 жыл бұрын
0:51 - скрин кода вопрос: что делать если unity говорит:The type or namespace name 'Vector2' could not be found (are you missing a using directive or an assembly reference?) вместо Вектора там ещё и другие переменные.
@NoobGameDev2 жыл бұрын
Обычно при создании нового скрипта через Unity, к нему сразу подключаются самые используемые (а порой и необходимые) директивы: using System.Collections; using System.Collections.Generic; using UnityEngine; Они прописываются в самом начале, перед описанием класса. Думаю, что Вы их просто удали) Верните хотя бы using UnityEngine; Хотя лучше бы все три. А после того, как закончите писать скрипты, можно будет неиспользуемые (они будут иметь более тёмный вид) удалить.
@Gnek692 жыл бұрын
@@NoobGameDev Я уже даавно решил эту ошибку, вы оказались правы, посмотрел на ваш код и всё понял, видео классное, завтра буду смотреть следующие части. 👍
@nobodyhome93833 жыл бұрын
спасибо тебе ты лучший=)
@МаксимЗахаров-х8у1е2 жыл бұрын
Здравствуйте, в новой версии Unity не смог найти physics material 2d. Обычный есть, а 2d нет. Может вы знаете другой способ как убрать прилипания или как исправить проблему с physics material 3d?
@NoobGameDev2 жыл бұрын
Да, они его перепрятали немного: Create -> 2D -> Physics Material 2D
@waxxer9036 Жыл бұрын
А если он теперь прыгает только на определённой части карты?
@spidyblog Жыл бұрын
а что делать у меня кргда я написал скрипт скрипт остался стандартным а в редактаре скрипта он тот который я написал и когда я добавляю его на персонажа он ничего не делает
@NoobGameDev Жыл бұрын
Стандартный - это имеется ввиду пустой шаблон, где всего два пустых метода, Start и Update? И если в IDE он был изменён и сохранён, то почему ты решил, что он не изменился? Unity в консоли какие-то ошибки выдаёт? Или при добавлении скрипта к персонажу?
@Henesy_693 жыл бұрын
Здравствуйте как вы научились так кодить дайте советов смотрю видео ролики пишу повторяю за ними и когда сам пытаюсь получается хрень.
@Vnucheck3 жыл бұрын
ЧЕЛ - МЕГАХОРОШ!!!
@LYONID4 жыл бұрын
для тех, кто использует этот код для 3D public bool onGround = true; public LayerMask Ground; public Transform GroundCheck; public float GroundCheckRadius; void CheckingGround() { onGround = Physics.CheckSphere(GroundCheck.position, GroundCheckRadius, Ground); }
@4orniy4684 жыл бұрын
Спасибо тебе большое
@LYONID4 жыл бұрын
@@4orniy468 пожалуйста)
@yaLolliHokage2 жыл бұрын
Блин, чукак ты гений! Спасибо тебе большое! У меня именно эта ситуация, давно была проблема с мультипрыжком, всё откладывал её решения уже не в первом своём мини проекте, никак не мог найти нужного решения на просторах ютуба, но вот посмотрел это видео (хотя у автора много интересных и познавательных видео, спасибо ему за это), всё логично и должно работать, применил у себя, но облом, не зря я листал столько комментов дабы наткнуться на тебя)
@LYONID2 жыл бұрын
@@yaLolliHokage желаю удачи с проектом)
@semzero2773 жыл бұрын
Когда я запускаю и пробую прыгать в инспекторе показывается что On ground всегда с галочкой и мульти прыжок все еще есть, помогите как это пофиксисть?
@NoobGameDev3 жыл бұрын
Это значит, что перс постоянно "видит" землю, а это, скорей всего означает, что у Вас слишком большое значение в поле GroundCheckRadius. Значение должно быть равным радиусу коллайдера объекта GroundCheck. Так же чтобы не проверять это при каждом изменении можно в ф-ю Start дописать эту строку: GroundCheckRadius = GroundCheck.GetComponent().radius; Она автоматически при запуске игры будет вписывать значение радиуса коллайдера GroundCheck в поле GroundCheckRadius
@semzero2773 жыл бұрын
@@NoobGameDev Я и поставил радиусы одинаковыми но все равно мульти прыжок есть
@NoobGameDev3 жыл бұрын
@@semzero277 Тогда такое ещё предположение: в Инспекторе в поле Ground должны быть выбраны только слои, на которых может стоять перс (например Ground, Platform). А если там будет выбран слой, на котором находится сам персонаж (Player) или все слои (Everything), то как раз и будет такое поведение. Или если сам объект GroundCheck находится на слое Ground - он должен быть на том же слое, что и персонаж (например Player) или на каком-нибудь нейтральном (например Default) UPD: ещё одна мысль. Точно ли GroundCheck дочерний для персонажа объект? Должна быть такая структура: Player: - GroundCheck Т.е. GroundCheck нужно перетащить В персонажа. Для таких вопросов скриншоты очень хорошо подходят, поэтому если есть Дискорд, то присоединяйся к серверу, там гораздо быстрее и проще можно помочь: discord.gg/AHpWFBAJJr
@fentan68062 жыл бұрын
Спасибо за урок без говнокода
@BiChezGame3 жыл бұрын
Что за обьект Ground?? от куда он взялся? что с ним делать?
@NoobGameDev3 жыл бұрын
1. Ground - это объект группировки для платформ (т.е. если его развернуть, то в нём будут находиться платформы) 2. Взялся он из первого урока: kzbin.info/www/bejne/imicmH-iaqmfoMk 3. В него нужно перемещать платформы, как для порядка в Иерархии, так и для того, чтобы иметь возможность группировки платформ и создания для них композитного (одного общего) коллайдера, а также данный объект со всеми дочерними объектами (т.е. платформами) стоит перенести на слой Ground, чтобы иметь возможность определять стоит ли персонаж на земле.
@dansatora31504 жыл бұрын
Знаю вопрос не по теме но. Как вы считаете что правильнее, переписывать готовы код и редактировать его или все же писать весь код самому?
@NoobGameDev4 жыл бұрын
Сложный вопрос... Если Вы новичок, то априори не сможете написать код самостоятельно, - Вы, в любом случае будете сначала переписывать примеры, потом поймёте как они работают, а потом придёт осознание того, что нужно поменять, чтобы что-то работало так, как Вам хочется и вот уже после этого сможете написать свой код опираясь на свой опыт. Если у Вас есть свободное время и желание разобраться в том, что Вы делаете, то, конечно же, пробуйте писать код самостоятельно - это полезнее и интереснее, чем бездумно переписывать... Но! Я так же считаю, что иногда можно взять и готовый рабочий скрипт, чтобы сэкономить время и сократить кол-во ошибок (но это уже когда будете примерно понимать, как этот скрипт работает). В общем и целом: - если новичок - переписывать примеры и гуглить, какое слово в коде что значит; - почувствовал в себе уверенность - пытаться изменять чужие примеры под свои нужды; - стал ещё круче - изучать, создавать и применять новые (свои) методы под старые задачи; - почувствовал себя программистом - к этому времени и сам разберёшься, что дальше делать)
@dansatora31504 жыл бұрын
@@NoobGameDev благодарю за ответ)
@Mitya20873 жыл бұрын
У меня вопрос на счёт строчки public Animator anim; У меня в инспекторе написано что "None (Animator)" Что именно мне туда перетянуть?
@NoobGameDev3 жыл бұрын
А вы ещё ни одной анимации не делали для персонажа? Там нужен компонент Animator Controller, если не ошибаюсь, то при создании первой анимации, автоматически создаётся контроллер для того объекта которому была создана анимация. Но можно его создать и добавить вручную, почти так же, как и скрипт создавали: правой кнопкой -> Create -> Animator Controller -> можно его переименовать -> и перетащить в поле Controller блока Animator (или нажать на кружок справа от поля и выбрать нужный контроллер)
@Mitya20873 жыл бұрын
@@NoobGameDev я это уже исправил, но в любом случае спасибо
@Krukwa-o7g Жыл бұрын
Мне почему-то пишет "Parameter 'onGround' does not exist.
@_annihilator_an3 жыл бұрын
Здравствуйте, нужна помощь,выдает ошибку : 'Rigidbody2D' does not contain a definition for 'AddForse' and no accessible extension method 'AddForse' accepting a first argument of type 'RigidBody2D' could be found
@NoobGameDev3 жыл бұрын
Всё верно) Метода "AddForse" не существует, есть метод "AddForce"... (вместо буквы "s" буква "c") Обычно (если всё правильно настроено), то когда Вы начинаете писать имя метода, то VS предлагает варианты из списка доступных и похожих. А значит, если Вам VS такого списка не предлагает, то советую разобраться с настройками и посмотреть вот это вот видео: kzbin.info/www/bejne/rWmtXqaoi56osNk Это поможет Вам в дальнейшем не допускать подобных опечаток, да, и новые методы можете узнать)
@_annihilator_an3 жыл бұрын
@@NoobGameDev понял,спасибо Вам большое!
@FINE3563 жыл бұрын
Сделал все как на видео, пересмотрел раз 10, у меня не работает анимация прыжка, и мульти прыжок и onGround вкл постоянно в чем может быть проблема?
@NoobGameDev3 жыл бұрын
Вероятнее всего, это всё из-за слишком большого значения переменной "Check Radius". Основную роль играет именно это значение в поле Инспектора (не в коде) Сделайте так: подберите радиус Circle коллайдера у объекта Ground Check (он должен быть немного меньше границ коллайдера перса, чтобы если упереться в стену, то круглый коллайдер для проверки земли её не касался). После того как настроили размер, скопируйте значение радиуса этого зелёного круга и вставьте это значение в поле Check Radius. И попробуйте снова. Если не хотите каждый раз изменять значение Check Radius вручную, то в ф-и Start можете дописать такую строку: GroundCheckRadius = GroundCheck.GetComponent().radius; Она это будет делать автоматически при старте игры. Ах, да! Ещё на всякий случай проверьте, чтобы GroundCheck был дочерним объектом перса (вложенным в него). Т.е. чтобы в Иерархии была такая структура: ПЕРС-| - GroundCheck
@FINE3563 жыл бұрын
@@NoobGameDev Строчка автоматического радиуса - есть, дочерним тоже он является, но не работает, не понимаю в чем проблема, (Сделал так что бы круг не выходил за пределы границ персонажа, но мульти прыжок все равно есть) И еще сделал в анимации все как у вас на видео, персонаж прыгает, бегает (с анимацией из прошлого видео) но в прыжке анимации нет, в аниматоре просто ничего не происходит, не знаю что делать, все настройки onGround точно так же как на видео- а не работает.
@NoobGameDev3 жыл бұрын
@@FINE356 Ну, с анимацией прыжка всё ясно - она и не будет работать, если перс всё время детектит землю. А вот почему это происходит - это надо выяснять... Скинь код сюда или в ВК, я посмотрю на всякий случай...
@ДимаЛаврентьев-в7д2 жыл бұрын
Когда сделал анимацию прыжка моделька перестала поворачиваться, подскажите в чем может быть дело?
@NoobGameDev2 жыл бұрын
Ну, единственное, что приходит в голову - это вы записали Flip в анимации... Попробуйте пересоздать новую и следить за этим моментом. Хотя, в таком случае, если во время прыжка понажимать влево-вправо, то он должен поворачиваться... Или перс перестал поворачиваться даже, когда просто ходит? Я бы советовал к нам в Дискорд заглянуть (ссылка есть в шапке канала). Просто там всё наглядно можно показать, понять и вычислить причину.
@t4shok6283 жыл бұрын
У меня проблема ,не работает анимация . В аниматоре при срабатывании OnGround состояние прыжка мигает(шкала снизу ) В параметрах в аниматоре OnGround работает стабильно скорость анимации менял ,сама анимация из 2 кадров
@NoobGameDev3 жыл бұрын
Нужно проверить переход от прыжка к покою (и к ходьбе). Есть подозрение, что там ошибка типа: в условии onGround = false вместо true. Как раз в таком случае анимация может из покоя быстро переключиться на прыжок и тут же переключиться обратно.
@t4shok6283 жыл бұрын
@@NoobGameDev я проверил ,со скриптом и переходами всё ок
@NoobGameDev3 жыл бұрын
@@t4shok628 Тогда можно попробовать добавить кадров к анимации (любых), чтобы их не 2 было, а скажем 10. И посмотреть, если анимация будет воспроизводиться как надо, то проблема в анимации, а если и с 10-ю кадрами она будет всего лишь "промаргивать" то проблема либо в коде, либо в Аниматоре (что скорее всего). В идеале записать бы видео с проблемой, пощёлкать переходы, код промотать и скинуть мне в ВК или Телегу, что бы не гадать)
@t4shok6283 жыл бұрын
@@NoobGameDev скорее всего я понял в чём проблема ,у меня вместе с Jump мигает и idle
@buhgalter75744 жыл бұрын
Все прекрасно работает, но есть один момент, не подскажите как можно его решить? У меня анимация прыжка состоит как бы из трёх этапов, присед - прыжок - приземление (присед после прыжка), так вот, после нажатия пробела, персонаж приседает уже в воздухе, а приземление совсем не проигрывается, так как анимация прыжка прерывается после пересечения колайдера GroundCheck с объектами слоя Ground, можно это как-то пофиксить? И еще один момент, можно каким-то обраpом регулировать длину прыжка?
@NoobGameDev4 жыл бұрын
Я с конца начну) О контролируемом прыжке есть видео (буквально следующий урок, 5-й), но в нём происходит контроль времени увеличения силы прыжка... Т.е. он будет прыгать дальше за счёт того, что прыгает выше. Есть так же видео об ускорении (беге, 10-й урок), в нём увеличение длины прыжка происходит за счёт увеличения скорости движения во время прыжка. Посмотрите оба видео, может, их комбинация даст, то, что Вам нужно. А вот с прыжком всё не так однозначно... Если Вы хотите анимацию перед прыжком, то придётся делать задержку на время проигрывания анимации (т.е. нажали клавишу прыжка, а перс прыгнул через ~0.5 сек.). А при приземлении, нужно будет на время проигрывания анимации отключать управление героем (чтобы, например, при зажатой клавише управления, анимация не переходила резко из прыжка в ходьбу, или перс не перемещался влево вправо во время проигрывании анимации приземления...) Получится перед прыжком 0.5 сек., после те же 0.5 сек... и уже секунда (примерно) задержки. А эти все моменты очень ощущаются в игре. Можно ускорить анимацию, но тогда она становится почти не заметной... Если сделать всё, что я тут предложил, то получится примерно так: kzbin.info/www/bejne/labRfIyVftacd7M
@stanislavshestak25713 жыл бұрын
Здравствуйте, такой вопрос. Почему при нажатии кнопки пробел персонаж может улетать в космос? То есть он не падает обратно, а просто начинает подниматься по оси у до бесконечности.
@NoobGameDev3 жыл бұрын
Приветствую) А сколько Вы его ждали с орбиты? В теории - это может произойти при Gravity Scale = 0 (в Инспекторе в Rigidbody), либо при ошибке в коде (если, к примеру ускорение персу придаётся не один раз при нажатии кнопки, а каждый кадр). Но, скорей всего, если вы делали по уроку, то для условий вашей сцены, у вас слишком большое значение JumpForce. Как Вы, кстати, делали (через velocity или AddForce)? Попробуйте его запустить к Зевсу и пойти попить чаю, посмотреть какой-нибудь видосик, и если минут через 10-15 значения по Y не начнут уменьшаться, то есть большая вероятность, что ошибка в коде. Если же цифры начнут возвращаться к нулю, то проблема в сильно большем, чем нужно значении силы прыжка)
@stanislavshestak25713 жыл бұрын
@@NoobGameDev большое спасибо за ответ, буду пробовать) Делал через AddForce
@Metteam1423 жыл бұрын
Помогите пожалуйста у меня горой(Character) улетает наверх
@NoobGameDev3 жыл бұрын
Этому 2 основные причины: 1. Слишком большое значение JumpForce 2. В коде (в методе Jump) допущена ошибка (многие пишут Input.GetKey(KeyCode.Space), что значит "клавиша ЗАжата", а нужно Input.GetKeyDown(KeyCode.Space), что значит "клавиша была НАжата") Если это не решит Вашу проблему, то советую зайти на наш Дискорд сервер (ссылка есть в шапке канала), там можно и код и скрины скинуть)
@Metteam1423 жыл бұрын
@@NoobGameDev Спасибо)
@Bee_Fed3 жыл бұрын
У меня такая проблема: при прикосновениях к стенкам, мой персонаж может прыгать как ему вздумается, а сделать слой Wall я не могу, т.к я делаю через tilemap. Как мне это исправить?
@NoobGameDev3 жыл бұрын
Вам нужно сделать поменьше сферу проверки земли, чтобы она не выходила за бока перса. Другими словами сейчас (скорей всего) когда перс упирается в стену, то сфера проверки земли касается стены, поэтому нужно её уменьшить. Вам бы это показать на картинке, но тут нет такой возможности... Поэтому, если не поняли о чём я, то можете зайти к нам в Дискорд (ссылка в шапке канала), там можно наглядно объяснить)
@Tikarr03 жыл бұрын
помогите пожалуйста если такая ошибка 4:55 что делать если перс не делает мультипрыжок но и не ходит!(((
@NoobGameDev3 жыл бұрын
Ошибок Unity не выдаёт? Если нет, то скиньте код, возможно где-то там логическая ошибка. UPD: или попробуйте скопировать код из под видео.
@dpomopomokae Жыл бұрын
чел ультрагипермегасуперхорош
@KapSined3 ай бұрын
Для таких же гениев как и я, в объекте GroundCheck коллайдер двигать НЕНУЖНО, нужно двигать сам объект с коллайдером
@zinya3283 жыл бұрын
А что делать, если во вкладе Create нету Physics Material 2D, а только Physics Material ?
@NoobGameDev3 жыл бұрын
Он немного поглубже спрятан (может, кстати, от версий Unity отличается - нужно проверить). Попробуй тут поискать: Create -> 2D -> Physics Material 2D
@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 Жыл бұрын
Я справился
@Lamo1992 Жыл бұрын
@@people278 подскажи пожалуйста как ? нет понимания что не так
@people278 Жыл бұрын
@@Lamo1992 привет, всё что я помню с того времени - я всё начал заново, и всё вышло, я уже не помню что я точно делал, извини, это было 3 месяца назад
@Гыгы Жыл бұрын
Там же всё написано. В инспекторе не выбрали Граунд чек, видимо в ячейку забыли перетащить тот объект, который под персонажем создавался. Это было на моменте 4:14
@Virfi_2 жыл бұрын
Можете, пожалуйста, объяснить: когда я даю полу слой ground, пол пропадает, но только в режиме конструирования, а если запустить игру, то всё появляется как было. Да, при этом ничего не портится, но приносит это малейшие неудобства, но можно ли это чуть-чуть исправить?
@NoobGameDev2 жыл бұрын
Боюсь, что я с подобным не сталкивался... Единственное, что приходит в голову - это то, что Вы могли отключить видимость Gizmos в окне Scene, а при запуске в окне Game всё видно. Либо что-то не так с осью Z. Например слой земли находится слишком близко к камере или за ней, проверьте этот момент. В 2D хорошей практикой будет следить за тем, что по оси Z объекты были в нуле (кроме камеры). И что-то больше идей нет... Советую, зайти к нам на Дискорд сервер (ссылка есть в шапке канала и описании) и задать данный вопрос в соответствующем канале. В идеале записать видео проблемы. И либо я, либо кто-то из ребят попробуем в этом разобраться)
@Virfi_2 жыл бұрын
@@NoobGameDev хорошо, спасибо. Не то чтобы это прям сильно замедляло процесс, но доставляет неудобство
@enafings96252 жыл бұрын
@@Virfi_ попробуй нажать f мне помогло
@НикитаСолонский-я1р4 жыл бұрын
Почему у меня исчезли из вида земля, она как бы есть(когда нажимаешь Play), но в редакторе её нет
@NoobGameDev4 жыл бұрын
Т.е. нет картинки Земли? Её не видно ни в окне "Game", ни в окне "Scene"? А если нажимаете "Play", то перс падает и стоит, как бы в воздухе? Если ответы на все вопросы "Да", то 90%, что у вас на объекте отключен компонент "Sprite Renderer". Выберите в Иерархии объект (Землю) и в Испекторе поставьте галочку у компонента "Sprite Renderer"... Помогло? Или я что-то не так понял?
@НикитаСолонский-я1р4 жыл бұрын
@@NoobGameDev спасибо
@flynntaggart99732 жыл бұрын
а что делать если персонаж медленно падает ?
@NoobGameDev2 жыл бұрын
Обычно такое происходит, если где-то обнуляется скорость, например в управлении: 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 значения будут равны нулю.
@flynntaggart99732 жыл бұрын
@@NoobGameDev спасибо
@comachine11 ай бұрын
гравитацию можно еще увеличить
@vlandarin61964 жыл бұрын
привет почему когда персонаж прыгает то на земле анимация не заканчивается?
@NoobGameDev4 жыл бұрын
Видимо, та же проблема с переходами. Просмотрите их все, у них в настройках не должно быть галочки Has Exit Time. Или анимация зацикливается (по кругу играет). В таком случае в Аниматоре дважды кликните по интересующей Вас анимации и уберите галочку с поля Loop (оно отвечает за зацикливание анимации)
@vlandarin61964 жыл бұрын
@@NoobGameDev спасибо
@keirill2 жыл бұрын
Assets\Scripts\PlayerController.cs(20,9): error CS1955: Non-invocable member 'PlayerController.jumpForce' cannot be used like a method.
@NoobGameDev2 жыл бұрын
Вы пытаетесь jumpForce использовать как метод... Что у Вас в 20-й строке?
@gag66742 жыл бұрын
Привет как исправить проблему? У меня движение совмещается с анимацией прыжка
@NoobGameDev2 жыл бұрын
Привет. Как будто бы ошибка где-то в переходах... Но такое нужно разбирать "воочию", если не получится исправить, то посетите сервер в Дискорд (ссылка есть в шапке канала), там при помощи скриншотов и коллективного разумуса это точно можно будет решить))
@kolyaalekseev4094 жыл бұрын
Все норм, но не понимаю пару вещей: 1) Когда персонаж упирается в стену его начинает трести. 2) не совсем понял про прыжок, т.е. я поставил гравитацию на 30 (у всех объектов), но падать быстрее он не стал, а идёт обычный прыжок( он занимает много времени и позволяет банихопить) Подскажите как исправить :D
@NoobGameDev4 жыл бұрын
Начну со второго: нужно -30 (минус 30), а то он вообще как на Луне должен скакать) И насколько я знаю, то BHOP - это тема 3D игр (особенно CS, Doom) суть которой перемещаться быстрее при помощи распрыжки. Или имеется ввиду, что персонаж прыгает над землёй? Если да, то нужно уменьшить значение переменной CheckRadius в Инспекторе или коде. А вот с тряской у стены, это не совсем понятно... Происходит быстрое переключение анимаций или небольшое подпрыгивание или наоборот проваливание? Просто звучит знакомо, что-то похожее было у меня, но проблема была в быстром переключении анимаций из-за неправильных условий в переходах в Аниматоре.
@Paul_Design3 жыл бұрын
а что делать если visual studio говорит что addforce и velocity требует ссылка на обьект? у меня все как у тебя
@NoobGameDev3 жыл бұрын
Это всё свойства и методы компонента Rigidbody. В моём примере есть переменная "rb" типа "Rigidbody2D". А в в методе "Start" происходит поиск и запись ссылки на компонент Rigidbody2D в переменную "rb". И уже при помощи этой ссылки (чтобы каждый раз заново не искать компонент) происходит обращение к необходимым свойствам и методам: rb.velocity... rb.AddForce()...
@Paul_Design3 жыл бұрын
@@NoobGameDev спасибо
@ImkuliN4 жыл бұрын
почему я не могу переименовать свой гейм обджект?
@NoobGameDev4 жыл бұрын
В окне "Hierarchy" правой кнопкой мыши нажимаете на интересующий Вас объект и в выпадающем списке выбираете "Rename". Вводите новое имя, нажимаете "Enter". Обязано сработать)
@whitenight73992 жыл бұрын
А что делать если попробовал 2 способа прыжка,но персонаж летит наверх,вроде в коде всё правильно написал.Заранее спасибо!
@NoobGameDev2 жыл бұрын
Скорей всего нужно лишь подобрать нужное значение силы прыжка. Попробуйте прыгнуть и подождать минуту, а в это время смотрите за положением перса по Y (в Инспекторе). Если оно будет расти, а потом через какое-то время (10 - 30 сек. - минуту) значение начнёт уменьшаться, то проблема в очень высоком значении силы прыжка - нужно уменьшать (через Инспектор)
@whitenight73992 жыл бұрын
@@NoobGameDev Спасибо!
@crazydevil34602 жыл бұрын
вот у меня вопрос, мне не нужен будет прыжок от стен и коллайдер персонажа у меня квадратный, соответственно ему нужна другая проверка земли, иначе он сможет прыгать только из середины блока, как мне сделать нормальный триггер земли, ведь если я попытаюсь увеличить радиус, то он начнёт считать стены за землю и отпрыгивать от них, как сделать триггер либо хитбоксом самого персонажа и сделать отдельный слой для стен, либо сделать как в обучение юнити и добавить разных состояний прыжка и не используя слои. Можете рассказать про 2 этих способа или рассказать про другие варианты ?
@NoobGameDev2 жыл бұрын
Совсем не понял про прыжок из середины блока... ) Данный вариант, на мой взгляд, наиболее универсален. Согласен, что он немного запутан (всё-таки одно из первых видео - буду переделывать), но он прекрасно работает и с квадратными персами и с круглыми, так как это по сути значения не имеет. Есть просто куча способов проверки: 1. Кастами (лучами, лучами похожими на квадрат, круг или произвольный коллайдер) - самый популярный Raycast 2. Областями (кругами, квадратами, коллайдерами, точкой) - популярный OverlapCircle (как в видео) 3. Контактами коллайдеров (через оnTrigger и onCollision, либо при помощи методов getContacts или isTouching) И для всех этих способов можно применять ещё и ContactFilter2D, в котором можно настроить направления нормали для считывания, слой для считывания и пр. Из того, что Вы хотите, больше всего подходит использовать проверку контакта коллайдера вместе с фильтром контактов... Что-то типа этого: _onGround = _mainCollider.isTouching(_contactFilter); Естественно сделав поля для основного коллайдера и фильтра (и настроив его). Каждый из способов имеет свои преимущества и недостатки. Что-то можно просто и наглядно отобразить, что-то из этого остаётся только представлять в голове. В видео что-то среднее)) Я понимаю, что от моего ответа Вам вряд ли стало легче)) Потому что для начинающих слишком много информации, поэтому можете посетить Дискорд сервер (ссылка есть в шапке канала) там можно это всё показать более подробно, а так же посмотреть короткое видео по тому же способу, что и в данном видео, только чуть проще (возможно Вы его и оставите): kzbin.infoM0F-XIxdKIU
@arnaydohneh8642 жыл бұрын
в таком случае ты создаешь 2 слоя коллайдеров. 1 - для onGround. Чтобы персонаж ходил. Другой слой - чтобы ты строил стены и.т.п С тайлмапами так же. Создаешь композит коллайдер для персонажа, чтобы он ходил .и.тп. 2й - для стен.
@arnaydohneh8642 жыл бұрын
и еще, можешь настроить в анимациях, Чтобы CheckGround - дчоерний объект персонажа, тоже двигался и был всегда впереди.
@bingogame2256 ай бұрын
У меня анимация прыжка обратно в анимацию покоя не переходит
@glebmatusevich61902 жыл бұрын
0:11 мне кажется лучше писать не "public" а "[SerializeField] private
@okurokokurok6997 Жыл бұрын
Блин, почему-то у меня пробел срабатывает через раз и игрок прыгает не всегда. Не знаете что могло вызвать данную проблему?(Код прыжка такой же как у Вас)
@NoobGameDev Жыл бұрын
Это один из минусов, когда нажатие клавиши считывается в FixedUpdate. Все нажатия от игрока лучше читать в обычном Update. Типа этого: void Update() { if (Input.GetKeyDown(KeyCode.Space)) { /* вызов метода прыжка */; } }
@okurokokurok6997 Жыл бұрын
@@NoobGameDev Спасибо Вам огромное за ответ, я Вам очень сильно благодарен)
@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); } } }
@medal200311 ай бұрын
Почему когда я просоо поставил новую землю и там все правильно сделал у меня пкрестала анимация работать и теперь onGround всегда включен даже если я не на земле
@medal200311 ай бұрын
Уже не надо я случайно поставил слой Ground к GroundCheck
@dokers20842 жыл бұрын
Можно ли сделать прыжок векторным? Типо не импульс будет его толкать, а он будет более "картонным". Классический вариарнт с импульсом может очень много багов образовать, например если очень быстро в прыжке допрыгнуть до земли и прыгнуть еще раз значения приумножатся и прыжок будет очень большим)
@NoobGameDev2 жыл бұрын
Ну, как по мне, так самым простым, настраиваемым и стабильным вариантом является задание скорости. Т.е. что-то типа: rb.velocity = new Vector2(rb.velocity.x, Y); где вместо Y указывается скорость (типа сила) прыжка. Вполне себе рабочий и удобный вариант) Но стоит учитывать, что в таком случае скорость с которой перс падает и скорость для прыжка суммироваться не будут. Другими словами персонаж может падать с небоскрёба, а перед землёй, нажав прыжок, подпрыгнет вверх и мягонько приземлится... Если это позволяет геймплей, то всё ок))
@huseeads3 жыл бұрын
ребят, не знаю в чем проблема, не работают анимации. При прыжке появляется второй персонаж в стороне, с анимацией. как это фиксить?
@NoobGameDev3 жыл бұрын
Оу... )) Не сталкивался с таким. В идеале бы это увидеть (например в Дискорд или ВК). А пока что могу предположить, что например анимации покоя и ходьбы были сделаны для одного объекта (допустим Player или Character), а анимация прыжка, например, для дочернего. По идее, такое может произойти, если настраивать, допустим тотже GroundCheck и переключиться на Animation и начать делать анимацию (не выделив перса в Иерархии). Нужно проверить: выбрать перса в Иерархии, открыть вкладку Animation, раскрыть список анимаций и посмотреть есть ли там анимация прыжка. И тоже самое сделать для дочерних объектов. Соответственно, если будет у дочернего, то удалить, а в родительский (перса) добавить. И ещё, каким образом делали анимацию прыжка, через запись (красная круглая кнопка в Animation)? И как это визуально выглядит? Перс раздваивается? Проигрывается анимация покоя и анимация прыжка? Или объект, коллайдер персонажа остаётся на месте, а спрайт прыжка летит в сторону?
@YmeUla3 жыл бұрын
Я не уверен но мне кажется проверка касания усложнена. Почему не сделать через OnCollisionEnter() или OnTriggerEnter() ? Серия видео конечно зачетная .
@NoobGameDev3 жыл бұрын
Спасибо, приятно) Можно сделать и так, но в таком случае, персонаж будет думать, что он на земле даже если он головой или любой другой частью коллайдера коснётся платформы. Или, например, встанет около стены (со слоем или триггером типа ground) и сможет прыгать, как и до проверки земли. Поэтому именно для проверки "на земле ли стоит перс" подходит либо доп. объект (GroundCheck), либо Raycast. По крайней мере, лично я так считаю)
@YmeUla3 жыл бұрын
@@NoobGameDev А почему не вынести саму проверку в отдельный скрипт который бы крепился к дочернему объекту(тригеру)
@NoobGameDev3 жыл бұрын
@@YmeUla Ну, тут, как говорится "хозяин - барин". Конечно, можно и так. Можно и управление вынести в отдельный класс и прыжок, и отражение спрайтов. В будущем я так, вероятнее всего, и переделаю +/- , чтобы можно было прикрутить одно и то же и для перса и для enemy, но для уроков (особенно начальных) мне показалось, что так будет проще и понятнее) Как лучше сделать, буду разбираться после добавления всех основных механик)
@bymajkakryta14743 жыл бұрын
@@NoobGameDev , у меня собственно и присутствует данная проблема, хотя метод такой же как и у вас, не знаете почему такое возможно?
@NoobGameDev3 жыл бұрын
@@bymajkakryta1474 Какая именно? Если стена имеет слой земли и когда перс подходит к ней вплотную, то может совершать кучу прыжков? Если так, то нужно уменьшить радиус GroundCheck, чтобы он не выходил за пределы коллайдера перса, другими словами он должен быть немного уже персонажа (не должен выходить за его границы, чтобы не пересекаться со стеной)
@askarbinka1822 жыл бұрын
привет, выдает такую ошибку: Assets\script\playermove.cs(46,59): error CS0103: The name 'CheckRadius' does not exist in the current context вписал все правильно, пробовал и это, и GroundCheckRadius Помоги пожалуйста, я новичок в этой сфере, и много чего недопонимаю.
@NoobGameDev2 жыл бұрын
Просто Вы пытаетесь использовать переменную, которая ещё не была объявлена. Речь о "GroundCheckRadius". Скорей всего была пропущена строка: private float GroundCheckRadius; В описании есть код, сравните его с Вашим или скопируйте, должно починиться)
@AsKaRoK402 жыл бұрын
@@NoobGameDev Спасибо помогло! Я себе еще сделал функцию чтобы когда игрок шел в разные стороны , его картинка от зеркаливалась, но когда я запускаю игру, то колайдер смещается в сторону, и от этого функция ломается.
@NoobGameDev2 жыл бұрын
@@AsKaRoK40 Не совсем понял о чём речь... Если частенько возникают вопросы, то советую присоединиться к нашему Дискорд-серверу (ссылка есть в шапке канала). Там и скриншоты можно присылать и людей много - быстрее ответ получить можно)
@aynmax4 жыл бұрын
у меня проблема, маленькая, есть задержка перед переходом из анимации прыжка в любое другое состояние, с каким то шансом, а в большинстве прыжков переход происходит мгновенно
@NoobGameDev4 жыл бұрын
Скорей всего, в переходах от прыжка к другим анимациям у Вас включен выход из анимации по её завершению (стоит галочка Has Exit Time - уберите её). Ещё могут быть не корректно заданы (или не заданы вовсе) условия перехода (onGround = true / onGround = false). Из-за Has Exit Time анимация сменится только тогда, когда закончится текущая. Т.е. в вашем случае зачастую анимация успевает проигрываться за время вашего прыжка. А иногда (допустим при запрыгивании на платформу) может доигрываться анимация прыжка, когда по логике должна идти анимация покоя, к примеру)
@daniilgorin53803 жыл бұрын
@@NoobGameDev Спасибо, помог)
@zhasim2 жыл бұрын
Кто-нибудь знает для Visual Studio Code расширения, чтобы как на видео при написании Physics2D. выбивало методы все, а то сниппетов накачал, а кроме базовых не находит
@NoobGameDev2 жыл бұрын
У меня 2 расширения стоят, с которыми всё норм работает: 1. C# (C# for Visual Studio Code (powered by OmniSharp)) 2. Debugger for Unity (Unity debugger extension)
@Ainn792 жыл бұрын
лично я из-за этого удалил vsc и скачал vs, думаю и тебе стоит)
@zhasim2 жыл бұрын
@@Ainn79 так и сделал
@hotctrims10772 жыл бұрын
У меня не прыгает персонаж все сделал как в видео но он не прыгает ошибок в коде нет
@hotctrims10772 жыл бұрын
смотрю по анимации он постоянно прыгает вместо покоя
@NoobGameDev2 жыл бұрын
@@hotctrims1077 Проверьте видит ли он вообще землю (в Инспекторе onGround с галочкой)? Основная проблема в этом уроке обычно в размерах коллайдера (мой косяк, объяснил слишком запутанно - буду переделывать). Но, возможно, проще будет вернуться к состоянию, когда перс мог бесконечно много прыгать и ограничить прыжки вот этим способом: kzbin.infoM0F-XIxdKIU Или, если есть возможность, можете посетить дискорд сервер (ссылка в шапке канала есть) там намного проще всё показать и объяснить)
@hotctrims10772 жыл бұрын
@@NoobGameDev сейчас зайду в дс
@hotctrims10772 жыл бұрын
он попросту не прыгает хз попробовал даже калайдер убрать сдвинуть и тд жаль я в коде 0
@ykrop20042 жыл бұрын
@@hotctrims1077 GetKeyDown не работает нормально в FixedUpdate его надо в обычный Update. Сам с такой проьлемой столкнулся и решил.
@РостикВасильев-о9с3 жыл бұрын
Здравствуйте, помогите пожалуйста!!!!!!!!! Решил применить ваш способ что бы пофиксить проблему мультипрыжка. Но почему то оно ведет себя крайне странно. Я повторил все в точности как у вас видео но проблема осталась, но самое странное то что если я поменяю слой на любой другой то оно вообще не прыгает (то есть код работает но почему то оно всегда передает в переменную True). А и еще если отключить колайдер у земли, оно тоже не будет прыгать. Пожалуйста помогите и скажите где именно я туплю, зарание большое спасибо))
@NoobGameDev3 жыл бұрын
Приветствую!) Я так понял, что у Вас onGround постоянно true? В таком случае, скорей всего у вас слишком большое значение в переменной GroundCheckRadius (в Инспекторе). Попробуйте сделать так: В ф-ю Start добавьте следующую строку: GroundCheckRadius = GroundCheck.GetComponent().radius; Она автоматически считает радиус коллайдера объекта GroundCheck (зелёного круга в ногах перса) и будет использовать его, как радиус сферы проверки земли. Или можете скопировать код по ссылке под видео (он уже с этим добавлением)
@РостикВасильев-о9с3 жыл бұрын
@@NoobGameDev Спасибо вам большое) Теперь все работает как надо )
@NoobGameDev3 жыл бұрын
@@РостикВасильев-о9с Круто, спасибо, что сообщили результат!) Надо всё таки, наверное, перезаписать видео, чтобы люди не путались)
@ZabavaTV Жыл бұрын
Хорошо объясняешь! Но я правда не могу разобраться - у меня игрок прыгает с какой-то периодичностью чтоли. Грубо говоря, не всегда срабатывает пробел. В апдейте функция джамп есть...
@NoobGameDev Жыл бұрын
Прыжок разной высоты? Или иногда не срабатывает при нажатии пробела?
@ZabavaTV Жыл бұрын
@@NoobGameDev да, иногда не срабатывает пробел. Грубо говоря, через раз
@ZabavaTV Жыл бұрын
Ладно, решил проблему ЭдФорсом) Через велосити почему-то такие траблы...
@Федор-ь5з2 жыл бұрын
Лучший
@olsney Жыл бұрын
Как смотреть, если качество только 360р?(
@NoobGameDev Жыл бұрын
Принудительно выбрать получше. Там конечно не 2К, но 720p точно имеется)
@olsney Жыл бұрын
@@NoobGameDev c компа 1080 есть, с телефона не было) странно) Мб баг какой-то был)