unity3d
Kolizja
Szukaj…
Zderzaki
Box Collider
Prymitywny Zderzak w kształcie prostopadłościanu.
Nieruchomości
Is Trigger - jeśli zaznaczone, Box Collider zignoruje fizykę i stanie się Collider Trigger
Materiał - Odniesienie, jeśli jest określone, do materiału fizyki zderzacza skrzynek
Centrum - Centralna pozycja Zderzacza Skrzynek w przestrzeni lokalnej
Rozmiar - rozmiar zderzacza skrzynek mierzony w przestrzeni lokalnej
Przykład
// Add a Box Collider to the current GameObject.
BoxCollider myBC = BoxCollider)myGameObject.gameObject.AddComponent(typeof(BoxCollider));
// Make the Box Collider into a Trigger Collider.
myBC.isTrigger= true;
// Set the center of the Box Collider to the center of the GameObject.
myBC.center = Vector3.zero;
// Make the Box Collider twice as large.
myBC.size = 2;
Zderzacz Sfer
Prymitywny Zderzak w kształcie kuli.
Nieruchomości
Jest wyzwalaczem - jeśli zaznaczone, Zderzacz Kul ignoruje fizykę i staje się Zderzaczem Wyzwalaczy
Materiał - Odniesienie, jeśli jest określone, do materiału fizyki Zderzacza Sfer
Centrum - Centralna pozycja Zderzacza Sfer w przestrzeni lokalnej
Promień - promień zderzaka
Przykład
// Add a Sphere Collider to the current GameObject.
SphereCollider mySC = SphereCollider)myGameObject.gameObject.AddComponent(typeof(SphereCollider));
// Make the Sphere Collider into a Trigger Collider.
mySC.isTrigger= true;
// Set the center of the Sphere Collider to the center of the GameObject.
mySC.center = Vector3.zero;
// Make the Sphere Collider twice as large.
mySC.radius = 2;
Zderzacz Kapsułek
Dwie półkule połączone cylindrem.
Nieruchomości
Jest wyzwalaczem - jeśli zaznaczone, Zderzacz Kapsuł ignoruje fizykę i staje się Zderzaczem Wyzwalacza
Materiał - Odniesienie, jeśli jest określone, do materiału fizyki zderzacza kapsułek
Centrum - Centralna pozycja Zderzacza Kapsułek w przestrzeni lokalnej
Promień - promień w przestrzeni lokalnej
Wysokość - całkowita wysokość zderzaka
Kierunek - oś orientacji w przestrzeni lokalnej
Przykład
// Add a Capsule Collider to the current GameObject.
CapsuleCollider myCC = CapsuleCollider)myGameObject.gameObject.AddComponent(typeof(CapsuleCollider));
// Make the Capsule Collider into a Trigger Collider.
myCC.isTrigger= true;
// Set the center of the Capsule Collider to the center of the GameObject.
myCC.center = Vector3.zero;
// Make the Sphere Collider twice as tall.
myCC.height= 2;
// Make the Sphere Collider twice as wide.
myCC.radius= 2;
// Set the axis of lengthwise orientation to the X axis.
myCC.direction = 0;
// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 1;
// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 2;
Zderzak kół
Nieruchomości
Mass - masa zderzaka koła
Promień - promień w przestrzeni lokalnej
Szybkość tłumienia koła - wartość tłumienia zderzaka koła
Odległość zawieszenia - maksymalne wydłużenie wzdłuż osi Y w przestrzeni lokalnej
Siła odległość punktu aplikacji - punkt, w którym siły zostaną przyłożone,
Centrum - środek zderzaka koła w przestrzeni lokalnej
Sprężyna zawieszenia
Wiosna - szybkość, z jaką koło próbuje wrócić do pozycji docelowej
Amortyzator - większa wartość bardziej tłumi prędkość, a zawieszenie porusza się wolniej
Pozycja docelowa - domyślnie 0,5, przy 0 zawieszenie jest na dole, przy 1 jest przy pełnym wysunięciu
Tarcie do przodu / na boki - jak zachowuje się opona podczas toczenia się do przodu lub na boki
Przykład
Zderzak siatki
Zderzacz oparty na zasobniku siatki.
Nieruchomości
Is Trigger - jeśli zaznaczone, Box Collider zignoruje fizykę i stanie się Collider Trigger
Materiał - Odniesienie, jeśli jest określone, do materiału fizyki zderzacza skrzynek
Siatka - odniesienie do siatki, na której opiera się Zderzacz
Wypukłe - Zderzające zderzaki siatkowe są ograniczone do 255 wielokątów - jeśli włączone, ten zderzacz może kolidować z innymi zderzaczami siatkowymi
Przykład
Jeśli zastosujesz więcej niż jeden Zderzacz do GameObject, nazywamy go Zderzaczem Złożonym.
Zderzak kół
Zderzak kół wewnątrz jedności jest zbudowany na zderzaczu kół PhysX firmy Nvidia, a zatem ma wiele podobnych właściwości. Technicznie jedność jest programem „bezjednostkowym”, ale aby wszystko miało sens, potrzebne są pewne standardowe jednostki.
Podstawowe właściwości
- Masa - masa koła w kilogramach, służy do pędu koła i momentu interia podczas wirowania.
- Promień - w metrach promień zderzaka.
- Stopień tłumienia koła - reguluje stopień „reakcji” kół na przykładany moment obrotowy.
- Odległość zawieszenia - całkowita odległość w metrach, jaką może pokonać koło
- Force App Point Distance - gdzie siła z zawieszenia przyłożona do nadrzędnego sztywnego nadwozia
- Centrum - środkowa pozycja koła
Ustawienia zawieszenia
- Sprężyna - jest to stała sprężyny, K, w niutonach / metr w równaniu:
Siła = Stała sprężynowa * Odległość
Dobrym punktem wyjścia dla tej wartości powinna być całkowita masa pojazdu podzielona przez liczbę kół, pomnożona przez liczbę od 50 do 100. Na przykład, jeśli masz samochód o masie 2000 kg z 4 kołami, każde koło będzie musiało obsługa 500 kg. Pomnóż to przez 75, a stała sprężyny powinna wynosić 37 500 Newtonów / metr.
- Amortyzator - odpowiednik amortyzatora w samochodzie. Wyższe wskaźniki powodują, że napięcie jest „sztywniejsze”, a niższe - „bardziej miękkie” i bardziej prawdopodobne, że oscylują.
Nie znam do tego jednostek ani równania, ale myślę, że ma to związek z równaniem częstotliwości w fizyce.
Ustawienia tarcia bocznego
Krzywa tarcia w jedności ma wartość poślizgu, określoną przez to, o ile koło ślizga się (wm / s) od pożądanej pozycji w stosunku do pozycji rzeczywistej.
Extremum Slip - Jest to maksymalna ilość (wm / s), którą koło może poślizgnąć, zanim straci przyczepność
Wartość ekstremalna - jest to maksymalna wartość tarcia, którą należy zastosować do koła.
Wartości poślizgu Exrtremum powinny wynosić od 2 do 2 m / s dla najbardziej realistycznych samochodów. 2 m / s to około 6 stóp na sekundę lub 5 mil na godzinę, co jest dużym poślizgiem. Jeśli uważasz, że Twój pojazd musi mieć wartość poślizgu wyższą niż 2 m / s, powinieneś rozważyć zwiększenie maksymalnego tarcia (Extremum Value).
Frakcja maksymalna (wartość ekstremalna) to współczynnik tarcia w równaniu:
Siła tarcia (w niutonach) = współczynnik tarcia * Siła w dół (w niutonach)
Oznacza to, że przy współczynniku 1 przykładasz całą siłę samochodu + zawieszenie przeciwnie do kierunku poślizgu. W rzeczywistych zastosowaniach wartości wyższe niż 1 są rzadkie, ale nie niemożliwe. W przypadku opony na suchym asfalcie wartości od 0,7 do 0,9 są realistyczne, dlatego preferowana jest wartość domyślna 1,0.
Ta wartość nie powinna realistycznie przekraczać 2,5, ponieważ zaczną się pojawiać dziwne zachowania. Np. Zaczynasz skręcać w prawo, ale ponieważ ta wartość jest tak wysoka, duża siła jest przykładana przeciwnie do twojego kierunku i zaczynasz wślizgiwać się w zakręt zamiast w dal.
Jeśli osiągnąłeś maksimum obie wartości, powinieneś zacząć podnosić poślizg i wartość asymptoty. Poślizg Asymptote powinien wynosić od 0,5 do 2 m / s i określa współczynnik tarcia dla dowolnej wartości poślizgu poza poślizg Asymptote. Jeśli stwierdzisz, że twoje pojazdy zachowują się dobrze, dopóki nie zepsują przyczepności, w którym to momencie zachowuje się tak, jak na lodzie, powinieneś zwiększyć wartość Asymptote. Jeśli stwierdzisz, że twój pojazd nie jest w stanie dryfować, powinieneś obniżyć wartość.
Tarcie do przodu
Tarcie do przodu jest identyczne z tarciem bocznym, z tym wyjątkiem, że określa to, ile przyczepności ma koło w kierunku ruchu. Jeśli wartości są zbyt niskie, pojazdy będą wypalać się i po prostu zakręcić oponami, a następnie powoli. Jeśli jest za wysoko, twój pojazd może mieć tendencję do wykonywania przewrotnego uderzenia lub co gorsza.
Dodatkowe uwagi
Nie oczekuj, że będziesz w stanie stworzyć klon GTA lub inny klon wyścigowy, po prostu dostosowując te wartości. W większości gier drogowych wartości te są ciągle zmieniane w skrypcie dla różnych prędkości, terenu i wartości skrętu. Dodatkowo, jeśli przykładasz tylko stały moment obrotowy do zderzaków kół, gdy naciskany jest klawisz, gra nie będzie zachowywać się realistycznie. W prawdziwym świecie samochody mają krzywe momentu obrotowego i przekładnie, które zmieniają moment obrotowy przykładany do kół.
Aby uzyskać najlepsze wyniki, należy dostroić te wartości, dopóki samochód nie zareaguje wystarczająco dobrze, a następnie wprowadzi zmiany momentu obrotowego koła, maksymalnego kąta skrętu i wartości tarcia w skrypcie.
Więcej informacji na temat zderzaków kół można znaleźć w dokumentacji Nvidii: http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Vehicles.html
Zderzaki spustowe
Metody
-
OnTriggerEnter()
-
OnTriggerStay()
-
OnTriggerExit()
Możesz przekształcić Collider w Trigger , aby korzystać z OnTriggerEnter()
, OnTriggerStay()
i OnTriggerExit()
. Zderzacz wyzwalaczy nie reaguje fizycznie na kolizje, inne obiekty GameObject po prostu przez niego przechodzą. Są one przydatne do wykrywania, gdy inny GameObject znajduje się w określonym obszarze lub nie, na przykład podczas zbierania przedmiotu, możemy chcieć po prostu przez niego przejść, ale wykryć, kiedy to nastąpi.
Trigger Collider Scripting
Przykład
Poniższa metoda jest przykładem detektora wyzwalacza, który wykrywa, kiedy inny zderzacz wchodzi do zderzacza obiektu GameObject (np. Gracz). Metody wyzwalające można dodawać do dowolnego skryptu przypisanego do GameObject.
void OnTriggerEnter(Collider other)
{
//Check collider for specific properties (Such as tag=item or has component=item)
}