Suche…


Colliders

Box Collider

Ein primitiver Collider, der wie ein Quader geformt ist. Aktivierte und deaktivierte Box-Colliders

Eigenschaften

  • Ist Trigger - Wenn diese Option aktiviert ist, ignoriert der Box Collider die Physik und wird zum Trigger Collider

  • Material - Ein Verweis auf das Physikmaterial des Box Colliders, falls angegeben

  • Center - Die zentrale Position des Box Colliders im lokalen Raum

  • Größe - Die Größe des Box Colliders im lokalen Raum

Beispiel

// 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;

Sphere Collider

Ein primitiver Collider, der wie eine Kugel geformt ist. Aktivierte und deaktivierte Sphere Colliders

Eigenschaften

  • Ist Trigger - Wenn diese Option aktiviert ist, ignoriert der Sphere Collider die Physik und wird zum Trigger Collider

  • Material - Eine Referenz, falls angegeben, auf das Physikmaterial des Sphere Collider

  • Center - Die zentrale Position des Sphere Colliders im lokalen Raum

  • Radius - Der Radius des Colliders

Beispiel

// 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;

Capsule Collider

Zwei durch einen Zylinder verbundene Halbkugeln. Aktivierte und deaktivierte Capsule Colliders

Eigenschaften

  • Ist Trigger - Wenn diese Option aktiviert ist, ignoriert der Capsule Collider die Physik und wird zum Trigger Collider

  • Material - Eine Referenz, falls angegeben, auf das Physikmaterial des Capsule Collider

  • Center - Die zentrale Position des Capsule Collider im lokalen Raum

  • Radius - Der Radius im lokalen Raum

  • Höhe - Gesamthöhe des Colliders

  • Richtung - Die Orientierungsachse im lokalen Raum

Beispiel

// 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;

Wheel Collider

Eigenschaften

  • Masse - Die Masse des Wheel Colliders

  • Radius - Der Radius im lokalen Raum

  • Raddämpfungsrate - Dämpfungswert für den Wheel Collider

  • Abhängungsdistanz - Maximale Ausdehnung entlang der Y-Achse im lokalen Raum

  • Abstand zwischen Kraftpunkten - Der Punkt, an dem Kräfte angewendet werden,

  • Center - Zentrum des Wheel Colliders im lokalen Raum

Federungsfeder

  • Frühling - die Rate, mit der das Rad versucht, zur Zielposition zurückzukehren

  • Dämpfer - Ein größerer Wert dämpft die Geschwindigkeit mehr und die Federung bewegt sich langsamer

  • Zielposition - der Standardwert ist 0,5, bei 0 ist die Suspension erschöpft, bei 1 ist sie voll ausgefahren

  • Vorwärts- / seitwärts gerichtete Reibung - wie sich der Reifen beim Vorwärts- oder seitwärtsrollen verhält

Beispiel


Mesh Collider

Ein Collider, der auf einem Mesh-Asset basiert. Nicht konvexe und konvexe Mesh Colliders

Eigenschaften

  • Ist Trigger - Wenn diese Option aktiviert ist, ignoriert der Box Collider die Physik und wird zum Trigger Collider

  • Material - Ein Verweis auf das Physikmaterial des Box Colliders, falls angegeben

  • Mesh - Ein Verweis auf das Mesh, auf dem der Collider basiert

  • Convex - Convex Mesh Colliders sind auf 255 Polygone beschränkt. Wenn diese Option aktiviert ist, kann dieser Collider mit anderen Mesh Colliders kollidieren

Beispiel


Wenn Sie mehr als einen Collider auf ein GameObject anwenden, nennen wir es einen zusammengesetzten Collider. Geben Sie hier die Bildbeschreibung ein

Wheel Collider

Der Wheel Collider in Unity ist auf dem PhysX Wheel Collider von Nvidia aufgebaut und hat daher viele ähnliche Eigenschaften. Technisch gesehen ist Einheit ein "unitless" Programm, aber um alles sinnvoll zu machen, sind einige Standardeinheiten erforderlich.

Grundeigenschaften

  • Masse - das Gewicht des Rades in Kilogramm, dies wird für den Radimpuls und den Moment des Interieurs beim Drehen verwendet.
  • Radius - in Metern der Radius des Kolliders.
  • Raddämpfungsrate - Stellt ein, wie "reaktionsfähig" die Räder auf das aufgebrachte Drehmoment reagieren.
  • Aufhängungsentfernung - Gesamtentfernung in Metern, die das Rad zurücklegen kann
  • Force App Point Distance (Kraftanwendungspunktabstand) - Wo ist die Kraft, die von der Federung auf den übergeordneten starren Körper ausgeübt wird
  • Center - Die Mittelposition des Rades

Suspendierungseinstellungen

  • Feder - Dies ist die Federkonstante K in Newton / Meter in der Gleichung:

Kraft = Federkonstante * Abstand

Ein guter Ausgangspunkt für diesen Wert sollte die Gesamtmasse Ihres Fahrzeugs sein, dividiert durch die Anzahl der Räder, multipliziert mit einer Zahl zwischen 50 und 100. Wenn Sie beispielsweise ein Fahrzeug mit 2.000 kg und 4 Rädern haben, müsste jedes Rad Unterstützung 500kg. Multiplizieren Sie dies mit 75, und Ihre Federkonstante sollte 37.500 Newton / Meter betragen.

  • Dämpfer - das Äquivalent eines Stoßdämpfers in einem Auto. Höhere Raten machen die Spannung "steifer" und niedrigere Raten machen sie "weicher" und schwingen eher.
    Ich kenne die Einheiten oder die Gleichung dafür nicht, ich denke es hat jedoch mit einer Frequenzgleichung in der Physik zu tun.

Seitliche Reibungseinstellungen

Die Reibungskurve in Einheit hat einen Schlupfwert, der dadurch bestimmt wird, wie stark das Rad (in m / s) von der gewünschten Position gegenüber der tatsächlichen Position rutscht.

  • Extremum Slip - Dies ist die maximale Menge (in m / s), die ein Rad rutschen kann, bevor es die Traktion verliert

  • Extremwert - Dies ist die maximale Reibung, die auf ein Rad ausgeübt werden sollte.

Die Werte für Exrtremum Slip sollten für die meisten realistischen Autos zwischen 0,2 und 2 m / s liegen. 2 m / s sind ungefähr 6 Fuß pro Sekunde oder 5 Meilen pro Stunde, was viel Schlupf ist. Wenn Sie der Meinung sind, dass Ihr Fahrzeug einen Wert von mehr als 2 m / s für Schlupf haben muss, sollten Sie die maximale Reibung (Extremum Value) erhöhen.

Max Fraction (Extremum Value) ist der Reibungskoeffizient in der Gleichung:

Reibungskraft (in Newton) = Reibungskoeffizient * Abwärtskraft (in Newton)

Das bedeutet mit einem Koeffizienten von 1, dass Sie die gesamte Kraft des Fahrzeugs + der Aufhängung entgegen der Schlupfrichtung anwenden. In realen Anwendungen sind Werte über 1 selten, aber nicht unmöglich. Für einen Reifen auf trockenem Asphalt sind Werte zwischen 0,7 und 0 realistisch, daher ist der Standardwert 1,0 vorzuziehen.

Dieser Wert sollte realistisch nicht 2,5 überschreiten, da merkwürdiges Verhalten auftreten wird. Sie beginnen z. B. nach rechts zu drehen, aber da dieser Wert so hoch ist, wird eine große Kraft entgegen Ihrer Richtung ausgeübt und Sie beginnen in die Kurve zu gleiten anstatt wegzurutschen.

Wenn Sie beide Werte maximal eingestellt haben, sollten Sie den Asymptoten-Slip und den Wert erhöhen. Der Asymptoten-Schlupf sollte zwischen 0,5 und 2 m / s liegen und definiert den Reibungskoeffizienten für jeden Schlupfwert nach dem Asymptoten-Schlupf. Wenn Sie feststellen, dass sich Ihre Fahrzeuge gut verhalten, bis sie die Traktion brechen, und sich dann wie auf Eis verhält, sollten Sie den Asymptote-Wert erhöhen. Wenn Sie feststellen, dass Ihr Fahrzeug nicht driften kann, sollten Sie den Wert verringern.

Vorwärtsreibung

Die Vorwärtsreibung ist identisch mit der seitlichen Reibung, mit der Ausnahme, dass hiermit festgelegt ist, wie viel Traktion das Rad in Bewegungsrichtung hat. Wenn die Werte zu niedrig sind, werden Ihre Fahrzeuge durchgebrannt und drehen die Reifen, bevor sie langsam vorwärts fahren. Wenn es zu hoch ist, hat Ihr Fahrzeug möglicherweise die Tendenz, einen schlechten oder schlimmeren Schlag zu versuchen.

Zusätzliche Bemerkungen

Erwarten Sie nicht, dass Sie einen GTA-Klon oder einen anderen Rennklon erstellen können, indem Sie einfach diese Werte anpassen. In den meisten Fahrspielen werden diese Werte für verschiedene Geschwindigkeiten, Gelände und Wendewerte ständig im Skript geändert. Wenn Sie beim Drücken einer Taste lediglich ein konstantes Drehmoment auf die Radkollider ausüben, verhält sich Ihr Spiel nicht realistisch. In der Realität haben Autos Drehmomentkurven und Getriebe, um das auf die Räder aufgebrachte Drehmoment zu ändern.

Um optimale Ergebnisse zu erzielen, sollten Sie diese Werte so lange anpassen, bis Sie ein Auto bekommen, das einigermaßen gut reagiert, und dann das Raddrehmoment, den maximalen Drehwinkel und die Reibungswerte im Skript ändern.

Weitere Informationen zu den Radkollidern finden Sie in der Dokumentation zu Nvidia: http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Vehicles.html

Trigger-Colliders

Methoden

  • OnTriggerEnter()
  • OnTriggerStay()
  • OnTriggerExit()

Sie können einen Collider in einen Trigger OnTriggerEnter() , um die OnTriggerEnter() , OnTriggerStay() und OnTriggerExit() verwenden. Ein Trigger Collider reagiert nicht physisch auf Kollisionen, andere GameObjects passieren sie einfach. Sie sind nützlich, um zu erkennen, wann sich ein anderes GameObject in einem bestimmten Bereich befindet oder nicht. Wenn Sie zum Beispiel ein Objekt sammeln, möchten wir es vielleicht einfach durchlaufen lassen, aber erkennen, wenn dies passiert.

Trigger Collider Scripting

Beispiel

Die folgende Methode ist ein Beispiel für einen Trigger-Listener, der erkennt, wenn ein anderer Collider in den Collider eines GameObject (z. B. eines Spielers) eintritt. Triggermethoden können zu jedem Skript hinzugefügt werden, das einem GameObject zugewiesen ist.

void OnTriggerEnter(Collider other)
{
    //Check collider for specific properties (Such as tag=item or has component=item)
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow