Jak w Unity 2d pozbawić obiektu wpływów fizyki, zachowując kolizje itd.?

0

W Unity 2d, chcę by grawitacja nie mogła wpływać na jeden, konkretny obiekt, który używa RigidBody 2D oraz Box Collider 2D.
Muszę nim sterować, przemieszać go i kolizje z innymi obiektami muszą działać (nie może przenikać przez obiekty z Colliderami).
Temu Obiektowi w Rigidbody 2D zmieniłem Gravity Scale na zero, bo musi "latać" i nie może spadać, masę również mu zwiększyłem trochę, bo musi podnosić pewne rzeczy, które coś ważą.

Problem polega na tym, że gdy tym Obiektem, którym steruję, uderzę/dotknę innego obiektu, np. kuli, to zdarza się, że fizyka tej kuli oddziałuje na mój Obiekt i wpędza go w jakiś powolny ruch (nadaje Velocity mojemu obiektowi), a na ten ruch swobodny nie mogę pozwolić.
Krótko mówiąc, mój Obiekt musi podnosić kulę i ta kula musi kolidować z tym obiektem, ale jednocześnie ta kula nie może uderzeniem swoim sprawić, że mój Obiekt dostanie jakiegoś pędu i zacznie sobie latać sam lub spadać.

Macie pomysł jak na Obiekcie wyłączyć Velocity, które kula może nadać mojemu Obiektowi, gdy mu przywali lekko? Przypominam, że mój Obiekt jest sterowalny przez gracza więc porusza się, nie mogę Velocity ot tak wyłączyć, bo wtedy nie będę mógł się tym ruszać.
Albo też podam inny przykład - podnoszę kulę i sobie lecę w górę celowo i zatrzymuję się, a kula jest 20x lżejsza od obiektu mojego i sprawia, że mój Obiekt zaczyna spadać. Nie chcę by obiekt spadał przez kulę. Chcę odebrać prawa kuli, jedyne prawa jakie jej zostawię to pozwolenie na kolizję z Obiektem moim.

Przydałby się Checkbox jakiś w tym Rigidbody 2D, który sprawiłby, że obiekty mogą kolidować z moim obiektem, a obiekt mój mógłbym przemieszczać np. za pomocą AddForce (używam AddForce bo wtedy fizyka dobrze działa, gdybym używał czegoś łatwiejszego, to kula mogłaby się bugować, czyli mój obiekt dotykając jej mógłby sprawić, że kula przeniknęłaby (olałaby collidery) kawałek na mój obiekt, teleportowała się na niego)

0

Bez wiedzy o unity strzelam, ze wystarczy dodac sile rownowazaca sile grawitacji (to zgodnie z zasadami fizyki musi zawsze dzialac). Po wpisaniu na googlach:
http://forum.unity3d.com/threads/how-to-turn-on-and-off-gravity.45351/
http://docs.unity3d.com/ScriptReference/Rigidbody-useGravity.html
http://answers.unity3d.com/questions/502127/how-to-enable-gravity-on-gameobject-when-interact.html

0

Tyle, ze te linki są dla 3d, a nie 2d, RigidBody2D nie ma useGravity

1 użytkowników online, w tym zalogowanych: 0, gości: 1