PhysicsService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
PhysicsService enthält hauptsächlich Methoden, mit denen Sie mit Kollisionsgruppen arbeiten, die definieren, ob ein Set von Teilen mit Teilen in anderen Kollisionsgruppen kollidieren kann oder nicht. Sie können eine Gruppeüber Class.PhysicsService:RegisterCollisionGroup()
Die Erstellung, das Löschen und die Änderung von Kollisionsbeziehungen zwischen Kollisionsgruppen ist auf die serverseitige Scripts beschränkt.
Siehe Kollision-Filterung für Benutzeroberfläche-Details in Studio und innerhalb von Skripten.
Zusammenfassung
Methoden
Setzt den Zusammenstötszustand zwischen zwei Gruppen.
Gibt zurück, ob die beiden Gruppen Kollision.
Kehre die maximale Anzahl von Kollisionsgruppen zurück.
Kehre eine Tabelle mit Informationen über alle Gruppen der Kollision des Ortes zurück.
Überprüft, ob eine Kollisionsgruppe registriert ist.
Registriert eine neue Kollisionsgruppe mit dem angegebenen Namen.
Benennen Sie die angegebene Gruppeum.
Registriert die Kollisionsgruppe für den angegebenen Namen nicht.
Eigenschaften
Methoden
CollisionGroupSetCollidable
Setzt den Zusammenstötsstatus zwischen zwei Gruppen. Diese Methode wird einen Fehler anzeigen, wenn einer der Gruppen nicht registriert ist, so dass es empfohlen wird, dass Sie die Registrierung jedes Gruppen über PhysicsService:IsCollisionGroupRegistered() vornehmen, bevor Sie diesen Anruf ausführen.
Parameter
Rückgaben
CollisionGroupsAreCollidable
Gibt zurück, ob die beiden angegebenen Kollisionsgruppen kollidieren. Diese Methode wird auch wahr zurückgeben, wenn einer der Gruppen nicht registriert ist, da die Standard-Kollisionsmaske mit allen Gruppen kollidiert.
Parameter
Rückgaben
GetMaxCollisionGroups
Gibt die maximale Anzahl von Zusammenstoßgruppen zurück, die der Engine unterstützt. Der Wert beträgt derzeit 32.
Rückgaben
GetRegisteredCollisionGroups
Gibt eine Tabelle mit Informationen über alle Gruppenkollisionen des Ortes zurück. Jeder Wert in der zurückgegebenen Tabelle ist selbst eine Tabelle und enthält zwei Mitglieder:
<tbody><tr><td>maske</td><td>ganzzahlig</td><td>Die Masken der Gruppe; nur für interne Verwendung.</td></tr><tr><td>name</td><td>string</td><td>Name der Gruppe.</td></tr></tbody>
Mitglied | Typ | Beschreibung |
---|
Rückgaben
IsCollisionGroupRegistered
Überprüft, ob eine Kollisionsgruppe registriert ist. Es wird empfohlen, diesen Methoden vor dem Aufrufen von Methoden, die Fehler für nicht registrierte Kollisionsgruppen, wie PhysicsService:CollisionGroupSetCollidable() , zu rufen.
Parameter
Rückgaben
RegisterCollisionGroup
Registriert eine neue Kollisionsgruppe mit dem angegebenen Namen. Der Name kann nicht "Default" sein.
Beachten Sie, dass diese Methode eine leichte Leistungsverschlechterung basierend auf der Anzahl der BaseParts in der Arbeitszeit, so dass es empfohlen wird, dass Sie alle Kollisionsgruppen beim Bearbeiten-Zeitpunkt über den Studio- Editor registrieren und Class.PhysicsService
Parameter
Rückgaben
Code-Beispiele
local PhysicsService = game:GetService("PhysicsService")
local collisionGroupBall = "CollisionGroupBall"
local collisionGroupDoor = "CollisionGroupDoor"
-- Register collision groups
PhysicsService:RegisterCollisionGroup(collisionGroupBall)
PhysicsService:RegisterCollisionGroup(collisionGroupDoor)
-- Assign parts to collision groups
script.Parent.BallPart.CollisionGroup = collisionGroupBall
script.Parent.DoorPart.CollisionGroup = collisionGroupDoor
-- Set groups as non-collidable with each other and check the result
PhysicsService:CollisionGroupSetCollidable(collisionGroupBall, collisionGroupDoor, false)
print(PhysicsService:CollisionGroupsAreCollidable(collisionGroupBall, collisionGroupDoor)) --> false
RenameCollisionGroup
Renames the specified registered collision Gruppe, but does not rename the CollisionGroup property of parts that utilize the Gruppe. The first argument of this method is the name of the group to rename, the second argument is the new name for the Gruppe. If the specified group does not exist, this method will
Diese Methode wird einen Laufzeitfehler in den folgenden Situationen werfen:
- Ungültiger oder leerer Name für ein beliebiges Argument.
- Die Methode wird von einem Client aufgerufen.
Beachten Sie, dass diese Methode eine leichte Leistungsverschlechterung basierend auf der Anzahl von BaseParts in der Arbeitszeit hat, so dass es empfohlen wird, dass Sie alle Kollisionsgruppen beim Bearbeiten durch den Studio- Editor registrieren und sie so häufig wie möglich umbenennen.
Parameter
Rückgaben
UnregisterCollisionGroup
Registriert die Kollisionsgruppe für den angegebenen Namen nicht erneut, mit den folgenden Verhaltensweisen:
- Wenn ein ungültiger Name angegeben wird, wird die Methode nichts tun.
- Wenn der reservierte Name "Default" bereitgestellt wird, oder wenn die Methode von einem Client aufgerufen wird, wird ein Fehler geworfen.
- Wenn es im Zusammenstoß-Gruppen wenn es entfernt wird, gibt es irgendwelche Teile in der Zusammenstoß-Gruppe, wenn sie entfernt wird, werden diese Teile immer noch den gleichen Zusammenstoß-Gruppen-Namen behalten. Die physische Verhalten von Teile in einer entfernten Gruppe ist unbestimmt, so ist es empfohlen, alle Teile in einer entfernten Gruppe in eine andere Gruppe zu verschieben, z. B. die "Default" Gruppe.
Beachten Sie, dass diese Methode eine leichte Leistungsverschlechterung basierend auf der Anzahl von BaseParts in der Arbeitszeit hat, so dass es empfohlen wird, dass Sie alle Kollisionsgruppen beim Bearbeiten-Zeitpunkt über den Studio- Editor registrieren und diesen Methoden so häufig wie möglich aufrufen.