Если следовать логике физической модели Unity3D, когда на объект действует горизонтальная сила(в принципе она может быть в любом направление) и этот объект упирается в неподвижную стену, то этот объект прилипнет к этой стене(к примеру если ладонью придавить к стене кирпич). Но такая модель не должна действовать на некоторые объекты, например персонаж после прыжка упирается в вертикальную стену и прилипает к ней, пока не будет отжата кнопка движения. Для этого есть готовое решение в движке.
Чтобы персонаж после прыжка не прилипал к стене, к Box collider стены(платформы) нужно добавить материал physics material 2D с параметрами Friction 0 и Bounciness 0. Ниже под катом пару скриншотов с более подробной инструкцией, как это сделать.
Создаем объект physics material 2D(Лучше создать для него отдельную папку в проекте)
Жмем правой кнопкой на папку, в которой будем хранить этот объект, затем выбираем:
Create -> physics material 2D
Выбираем в ветке проекта созданный объект physics material 2D. Затем в окне инспектора этого объекта ставим следующие параметры: Friction = 0 и Bounciness = 0.
Теперь выбираем стену(платформу) и в инспекторе в параметрах Box collider 2D в строке Material указываем наш созданный выше объект.
Вот и все, теперь персонаж, при встрече со стеной и нажатой кнопкой движения в ее сторону, будет сползать вниз. Надеюсь кому-нибудь пригодится.
Чтобы персонаж после прыжка не прилипал к стене, к Box collider стены(платформы) нужно добавить материал physics material 2D с параметрами Friction 0 и Bounciness 0. Ниже под катом пару скриншотов с более подробной инструкцией, как это сделать.
Создаем объект physics material 2D(Лучше создать для него отдельную папку в проекте)
Жмем правой кнопкой на папку, в которой будем хранить этот объект, затем выбираем:
Create -> physics material 2D
Выбираем в ветке проекта созданный объект physics material 2D. Затем в окне инспектора этого объекта ставим следующие параметры: Friction = 0 и Bounciness = 0.
Теперь выбираем стену(платформу) и в инспекторе в параметрах Box collider 2D в строке Material указываем наш созданный выше объект.
Вот и все, теперь персонаж, при встрече со стеной и нажатой кнопкой движения в ее сторону, будет сползать вниз. Надеюсь кому-нибудь пригодится.
Спасибо работает.
ОтветитьУдалитьЭто работает и в 3D
А что делать если при прикосновении к стене я могу множество раз прыгать вверх?
ОтветитьУдалитьДобавь проверку что ты стоишь на земле)
Удалитькак добавить проверку земли? не могу нигде найти..
УдалитьGraundCheck?
Если ты еще тут, зайди на CodeMonkey в ютубе там есть видео на эту тему
УдалитьБоже, это самое быстрое решение проблемы в моей жизни, огромное спасибо автору
ОтветитьУдалитьСпасибо, ты мне помог!!!
ОтветитьУдалитьЭто решение только проблемы прилипания, но вызывает другую проблему - на некоторых поверхностях персонажи будут скользить как по льду. Я рекомендую добавить персонажу едж коллайдер 2д по бокам и уже коллайдеру назначить физический материал с силой трения 0. Такое решение избавит вас от скользящей поверхности.
ОтветитьУдалитьСпасибо Вам огромное!!!
УдалитьЯ Артур Борис, житель / гражданин Российской Республики. Мне 52 года, я предприниматель / бизнесмен. Однажды у меня были трудности с финансированием моего проекта / бизнеса, если бы не мой хороший друг, который познакомил меня с г-ном Бенджамином Ли, чтобы получить ссуду в размере 250 000 долларов США от его компании. Когда я связался с ними, мне потребовалось всего пять рабочих дней, чтобы оформить ссуду и перевести ее на мой счет. Даже с плохой кредитной историей они все равно предлагают вам свои услуги. Они также предлагают все виды ссуд, такие как бизнес-ссуды, жилищные ссуды, личные ссуды, автокредиты. Я не знаю, как благодарить их за то, что они сделали для меня, но Бог вознаградит их согласно Своему богатству славы. Если вам нужна срочная финансовая помощь, свяжитесь с ними сегодня по электронной почте 247officedept@gmail.com Информация WhatsApp ... + 1-989-394-3740
ОтветитьУдалитьАртур Борис Ахахахахахахахаха
УдалитьСпасибо! Мне очень помогло!
ОтветитьУдалитьМатериал надо добавить к стене и самому персонажу
ОтветитьУдалить