вторник, 30 мая 2017 г.

Unity3D, 2D платформер, персонаж прилипает к стене после прыжка.

     Если следовать логике физической модели 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 указываем наш созданный выше объект.

     Вот и все, теперь персонаж, при встрече со стеной и нажатой кнопкой движения в ее сторону, будет сползать вниз. Надеюсь кому-нибудь пригодится.

Unity3D, 2D платформер, персонаж прилипает к стене после прыжка.

     Если следовать логике физической модели Unity3D, когда на объект действует горизонтальная сила(в принципе она может быть в любом напра...