• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Unity 3D - przyciąganie się obiektów?

0 głosów
1,340 wizyt
pytanie zadane 22 listopada 2016 w OpenGL, Unity przez Tom_Ja Dyskutant (7,970 p.)
zmienione kategorie 22 listopada 2016 przez Tom_Ja
W jaki sposób mogę dodać wzajemne przyciąganie się dwóch obiektów do siebie w Unity3D?
1
komentarz 22 listopada 2016 przez Jacek Rojek Bywalec (2,380 p.)
2D czy 3D? 1 obiekt to gracz, czy sa to 2 naturalne obiekty?

3 odpowiedzi

0 głosów
odpowiedź 22 listopada 2016 przez niezalogowany
Zależy o jakim przyciąganiu mówisz, możesz użyć np Jointów
komentarz 22 listopada 2016 przez Tom_Ja Dyskutant (7,970 p.)
Chodzi mi np. o planety - wzajemne przyciąganie się słońca i ziemi - i innych ciał niebieskich.
komentarz 22 listopada 2016 przez Jacek Rojek Bywalec (2,380 p.)

mozesz uzyc kompunenty takiego jak Effector - ten daje punktowe pole 2d.

0 głosów
odpowiedź 22 listopada 2016 przez Knayder Nałogowiec (37,640 p.)
http://www.fizykon.org/wzory/wzory_grawitacja.htm

Musisz umieć wyznaczyć masę obiektów i ich wzajemną odległość. Potem podstawiasz pod wzór i masz siłę.
Potem z siły możesz wyznaczyć wektory
komentarz 22 listopada 2016 przez Tom_Ja Dyskutant (7,970 p.)
Stricte fizyka to żaden problem. Chodzi mi raczej jak to zastosować w Unity. Muszę napisać skrypt, program?

Patrząc na dokumentację Unity nie potrafię znaleźć, co mógłbym wykorzystać.

A nie chciałbym spisywać z tutoriali, czy pomocy, ale sam to zrobić. :)
1
komentarz 22 listopada 2016 przez Knayder Nałogowiec (37,640 p.)
edycja 22 listopada 2016 przez Knayder

Pokażę ci to na przykładzie 2D, ponieważ tylko w tym pracowałem.
musisz pomnożyć siłę, przez boki trójkąta prostokątnego, którego naprzeciw prostokątna, ma wartość 1 i ten sam kierunek oraz zwrot co wektor odległości między planetami.
Dam ci tutaj kod w c++:

//pos1 pozycja pierwszej planety
//pos2 pozycja drugiej planety
//mass1 masa pierwszej planety
//mass2 masa drugiej planety

float x = pos2.x - pos1.x;
float y = pos2.y - pos1.y;
float c = x*x + y*y;
float gravity = (mass1 *mass2)/c; //Nie uzywam stalej grawitacji
c = sqrt(c);
Vector vec1( (x/c) * (gravity / mass1),  (y/c) * (gravity / mass1) );
Vector vec2( -((x/c) * (gravity / mass2)),  -((y/c) * (gravity / mass2)) );

planet1.move(vec1);
planet2.move(vec2);

 

0 głosów
odpowiedź 22 listopada 2016 przez Jacek Rojek Bywalec (2,380 p.)

mozesz uzyc kompunenty takiego jak Effector - ten daje punktowe pole 2d.

komentarz 22 listopada 2016 przez Tom_Ja Dyskutant (7,970 p.)
edycja 22 listopada 2016 przez Tom_Ja

Dzięki za odpowiedź.

Do dwóch sphere nie zadziała, więc powinienem utworzyć, rozumiem, obiekty 2D. Tylko, że takowe to tylko sprits. Czy można jakoś je zamienić na kule?

Chodzi mi o coś w stylu symulacji planet. 

 

---

Podczas pisania tego komentarza, pomyślałem, żeby stworzyć dwie sfery 3D i do nich wpiąć Sprity. Sprity mają 2Dpoint, sferom dałem Rigidbody, jednej zmniejszyłem masę, wyłączyłem grawitację. I nie działa... (nie oczekuję, żeby działało, ale chyba czegoś nie wiem).

Dodam, że podczas zakładania nowego projektu zaznaczyłem że ma być 2D.

Wybacz głupie pytania, ale dopiero startuję ;)

Podobne pytania

0 głosów
1 odpowiedź 774 wizyt
pytanie zadane 28 sierpnia 2017 w C# przez Strzechoniusz Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 481 wizyt
pytanie zadane 4 maja 2017 w C# przez Patryk8090 Użytkownik (520 p.)
0 głosów
0 odpowiedzi 409 wizyt
pytanie zadane 29 lipca 2016 w C# przez natrov Gaduła (3,970 p.)

93,632 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...