Unity - problem ze stykajacymi sie coliderami


#1

Witajcie, w swoim projekcie napotkalem problem z coliderami. Podczas gry dwa sie zdezac w powietrzu to sie zatrzymuja. Np jezeli mamy prosty platformer 2d i postac podskakuje i zahaczy o jakis element to dopoki sie bedzie trzymalo przycisk poruszania sie w strone tego colidera(napierac na niego) to bedzie sie utrzymywal. Jest jakas funkcja lub sposob zeby “odczepic” te colidery? Pozdrawiam i dziekuje z gory! :slight_smile:


#2

Nie wiem w jaki sposób masz rozwiązane poruszanie, ale spróbuj dać śliski materiał zarówno do gracza jak i platformy.


#3

@Palanthir
Dawalem tarcie, zerowalem je(sliski material) - zero efektu. Wysylam gif do lepszego zobrazowania :stuck_out_tongue: 200w_d


#4

Do gracza, platformy i rigidbody ?
Jak masz rozwiązane poruszanie ?


#5

Dawalem do gracza oraz platformy, dodam do rigidbody, calkowicie o tym zapomnialem.
Poruszanie przez PlatformInputManagera funkcja GetAxis.
EDIT: Po dodaniu do rb nadal nic sie nie zmienia :confused:


#6

Sugeruję poszperać w dokumentacji poprawnego montowania coliderów i rigidbody na obiektach 2D. Na szybko nic konkretniejszego nie doradzę, ale jest parę reguł, których trzeba się trzymać i wtedy będzie działało.
Może być to też wina tego, w jaki sposób realizujesz ruch. Jeżeli dobrze pamiętam, to były problemy, gdy po prostu robiło się update pozycji, zamiast “ruchu” w kierunku pozycji docelowej. Z perspektywy mechaniki, to może skutkować tym, że pomiędzy klatkami postać przeskakuje z “poza coliderem” do “w coliderze” (gdzie jest przyklejona, bo już jest wewnątrz). Program nie rozpoznaje, że nastąpiło dojście do colidera i następnie wniknięcie w niego, tylko od razu obserwuje, że jest interferencja. To się rozwiązuje pisząc odpowiednio kod, który realizuje ruch zamiast zwykłego new position = old position + delta move.
Możliwe, że coś pomieszałem, ale ten kierunek bym doradzał - jest masa takich tematów w sieci i są konkretne rozwiązania, trzeba poszperać i poczytać.


#7

Jakby ktos sie kiedys do tego dokopal to po pewnym czasie doszedlem do tego, ze mialem zle collidery. Do playera przyczepilem polygon collider a zamiast tego powinien byc box collider + circle collider. Pozdrawiam :slight_smile:


#8

Popatrz sobie na physics effectors -> platform effector / surface effector itp… bardzo pomocne przy platformowkach.