Omówienie fizyki siatki
W środowisku usługi Mesh symulacja fizyki jest kluczem do umożliwienia angażowania zawartości dynamicznej. Aby zapewnić uczestnikom usługi Mesh wysokiej jakości współdzielone środowiska fizyki i oferować deweloperom wydajny przepływ pracy podczas tworzenia zawartości niestandardowej, utworzyliśmy system fizyki usługi Mesh . Fizyka mesh opiera się na lokalnej symulacji autorytatywnej, co powoduje bardzo prostą architekturę. Nie ma potrzeby logiki po stronie serwera i specjalnej logiki na klientach. Co najważniejsze, takie podejście skutkuje bardzo dynamicznym i małym opóźnieniem dla każdego gracza wchodzącego w interakcje ze swoim środowiskiem, nawet w przypadku połączenia z siecią o dużym opóźnieniu.
Symulacja fizyki rozproszonej
Fizyka siatki synchronizuje położenie sztywnych ciał i powinna działać poza polem, zakładając, że wszyscy klienci mają taką samą scenę. Większość funkcji fizyki aparatu Unity (na przykład sztywne, zderzacze, materiały i ograniczenia) będą synchronizowane bez dodatkowego nakładu pracy dewelopera:
Uwagi:
- Tylko sztywne położenie & orientacji są synchronizowane z interpolacją
- Należy unikać zmian stanu dyskretnego (na przykład ograniczeń możliwych do przerwania) i zdarzeń wyzwalacza
Każdy klient jest odpowiedzialny za symulowanie niektórych organów, nazywanych własnością symulacji rozproszonej. Gdy gracz dotyka sztywnego ciała, własność symulacji jest natychmiast przenoszona, aby umożliwić interakcję z małymi opóźnieniami. W przypadku sąsiednich ciał aparat synchronizacji fizyki wykonuje lokalne przewidywanie, interpolację i automatyczną redystrybucję własności w celu zminimalizowania artefaktów wizualnych.
Fizyka usługi Mesh oferuje interakcje i dodatkowe funkcje związane z fizyką, takie jak:
- różne pola do fizycznego wpływania na ciała wewnątrz (buoyancy, grawitacja)
- różnych składników do modyfikowania zachowania poszczególnych ciał (magnetycznych, lepkich, rzucalnych)
- możliwość zresetowania ciał do ich pozycji startowych (selektywne czyszczenie sceny)
- Obsługa trybu emulacji siatki na potrzeby testowania wielu użytkowników powyższych funkcji
Poniżej przedstawiono więcej rzeczy, które można wykonać za pomocą funkcji fizyki usługi Mesh:
Zezwalaj uczestnikom na pobieranie i przenoszenie obiektów.
Kontrolowanie sposobu, w jaki grawitacja wpływa na obiekty.
Zrób obiekt "lepki" — trzyma się dowolnego trafienia. Przykłady: rzucanie rzutki na deskę dart, dołączając obraz do ściany.
Dodaj animacje automatycznego odtwarzania, które współdziałają z ciałami fizyki.
Zezwalaj uczestnikom na resetowanie obiektów (na przykład zresetowanie tablicy szachowej lub oczyszczenie pokoju po rozrzuceniu obiektów).
Wyzwalaj zdarzenia, gdy obiekt wchodzi w zderzacz wyzwalacza.
Utwórz pole zawierające. Obiekty pozostaną w granicach pola.
Steruj szybkością obiektu.
Kontrolowanie buoyancy obiektów — na przykład sprawiają, że łodzie i inne obiekty morskie "float".
Kontroluj szybkość kątową obiektu.
Utwórz eksplozję, powodując przejście pobliskich obiektów na zewnątrz lub w określonym kierunku.
Utwórz obiekty "bouncy", które odbijają się od siebie ze wstępnie zdefiniowaną prędkością.
Teleportuj obiekt do nowej pozycji i (opcjonalnie) nowej rotacji.
Terminologia
W artykułach z fizyki siatki "ciało" jest używane jako skrót dla "Rigidbody".