unity2d создает односторонний коллайдер

У меня есть демо-версия игры Maplestory.

Мне нужно, чтобы персонаж мог прыгать через коллайдер с одной стороны

коллайдер в моем персонаже и на земле такой:

персонаж:capsulecollider2d

земля: polygoncollider2d

введите здесь описание изображения

чтобы персонаж мог стоять на земле

введите описание изображения здесьвведите здесь описание изображения

также может прыгать по земле

но теперь я хочу, чтобы персонаж прыгал со дна земли, это не сработает

введите здесь описание изображения

Итак, как я могу решить эту проблему? Есть ли конфигурация, которая может заставить коллайдер иметь только одну сторону?

-------------------------------------2017 08 11-------------------------------------

большое спасибо каждому

спасибо @EmreE @Jeroen De Clercq

Я решил эту проблему, используя Platform Effector 2D, предоставленный @EmreE.

введите здесь описание изображения

во-первых: добавить платформенный эффектор 2d на мою землю и выбрать «использовать в одну сторону»

второй: выберите «Используется эффектором»

введите здесь описание изображения

теперь работает :)

введите здесь описание изображения


person Martin    schedule 10.08.2017    source источник
comment
Это можно сделать, но требуется код. Что вы пробовали?   -  person Programmer    schedule 10.08.2017
comment
Это отличная ветка, в которой содержится много хороших идей по этому вопросу: forum.unity3d.com/threads/   -  person Easton Bornemeier    schedule 10.08.2017
comment
Также это может помочьPlatform Effector 2D   -  person Thalthanas    schedule 11.08.2017


Ответы (1)


  • Положите свой пол в слой;
  • поместите свои платформы в слой;
  • Когда вы прыгаете, удаляйте столкновение со слоем платформы, пока вы не достигнете направления, указывающего на пол.
  • Когда вы нажимаете клавишу «Вниз», удаляйте столкновения с платформами, пока вы не пройдете один слой платформы.

Больше информации здесь; https://docs.unity3d.com/ScriptReference/Physics.IgnoreLayerCollision.html

person Jeroen De Clercq    schedule 10.08.2017
comment
спасибо! Я решил эту проблему с помощью Platform Effector 2D - person Martin; 11.08.2017
comment
@Martin Если этот ответ помог вам, пожалуйста, примите ответ. Удачи в вашей игре. - person Jeroen De Clercq; 11.08.2017