PhysicsService

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst

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

Eigenschaften

Methoden

CollisionGroupSetCollidable

void

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

name1: string
name2: string
collidable: bool

Rückgaben

void

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

name1: string
name2: string

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>
MitgliedTypBeschreibung

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

name: string

Rückgaben

RegisterCollisionGroup

void

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

name: string

Rückgaben

void

Code-Beispiele

PhysicsService:RegisterCollisionGroup

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

void

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

from: string
to: string

Rückgaben

void

UnregisterCollisionGroup

void

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.

Parameter

name: string

Rückgaben

void

Ereignisse