mozesz uzyc kompunenty takiego jak Effector - ten daje punktowe pole 2d.
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);
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ę ;)
93,632 zapytań
142,556 odpowiedzi
323,056 komentarzy
63,139 pasjonatów
Top 15 użytkowników
Motyw:
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