PhysicsService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza

PhysicsService contiene in gran parte metodi per lavorare con gruppi di collisione che definiscono se un insieme di parti può o non può collidere con le parti in altri gruppi di collisione. Puoi registrare un gruppo di collisione attraverso Class.PhysicsService:RegisterCollisionGroup()|Register

La creazione, la cancellazione e la modifica delle relazioni di collisione tra i gruppi di collisione è limitata all'Scripts lato server.

Vedi Filtraggio delle collisioni per i dettagli sull'uso in Studio e negli script.

Sommario

Metodi

Proprietà

Metodi

CollisionGroupSetCollidable

void

Imposta lo stato di collisione tra due gruppi. Questo metodo mostrerà un errore se uno dei gruppi non è registrato, quindi è consigliato confermare la registrazione di ciascun Gruppoattraverso PhysicsService:IsCollisionGroupRegistered() prima di eseguire questa chiamata.

Parametri

name1: string
name2: string
collidable: bool

Restituzioni

void

CollisionGroupsAreCollidable

Restituisce se i due gruppi di collisione specificati si Collisione. Questo metodo restituirà anche vero se uno dei gruppi non è registrato, poiché la maschera di collisione predefinita si scontra con tutti i gruppi.

Parametri

name1: string
name2: string

Restituzioni

GetMaxCollisionGroups

Restituisce il numero massimo di gruppi di collisione che supporta il motore. Questo valore è attualmente 32.


Restituzioni

GetRegisteredCollisionGroups

Restituisce una tabella con informazioni su tutti i gruppi di collisione del Posto. Ogni valore nella tabella restituita è una tabella e contiene due membri:


<tbody>
<tr>
<td>maschera</td>
<td>integro</td>
<td>La maschera del Gruppodi collisione; solo per l'uso interno.</td>
</tr>
<tr>
<td>nome</td>
<td>stringa</td>
<td>Nome del Gruppodi collisione.</td>
</tr>
</tbody>
MembroTipoDescrizione

Restituzioni

IsCollisionGroupRegistered

Controlla se è registrato un gruppo di collisioni. È consigliato chiamare questo metodo prima di chiamare metodi che lanciano errori per gruppi di collisioni non registrati, come PhysicsService:CollisionGroupSetCollidable() .

Parametri

name: string

Restituzioni

RegisterCollisionGroup

void

Registra un nuovo gruppo di collisione con il nome specificato. Il nome non può essere "Default" .

Nota che questo metodo ha un leggero sovraffollamento delle prestazioni in base al numero di BaseParts nell'area di lavoro, quindi si consiglia di registrare tutti i gruppi di collisioni all'edit time attraverso il editor Studio e chiamare Class.PhysicsService:UnregisterCollisionGroup()|UnregisterColl

Parametri

name: string

Restituzioni

void

Campioni di codice

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

Rinomina il Gruppodi collisione specificamente registrato, ma non Class.BasePart.CollisionGroup|CollisionGroup rename the CollisionGroup property of parts che utilizzano il Gruppo. Il primo argomento di questo metodo è il nome del gruppo per rename, il secondo arg

Questo metodo mostrerà un errore di runtime nelle seguenti situazioni:

  • Nome non valido o vuoto fornito per entrambi gli argomento.
  • Il metodo viene chiamato da un client.

Nota che questo metodo ha un leggero sovraffollamento delle prestazioni in base al numero di BaseParts nell'area di lavoro, quindi si consiglia di registrare tutti i gruppi di collisione all'edit time attraverso il Studio editor e rinominarli il meno possibile frequentemente.

Parametri

from: string
to: string

Restituzioni

void

UnregisterCollisionGroup

void

Non registra il gruppo di collisione per il nome specificato, con i seguenti comportamenti:

  • Se viene fornito un nome non valido, il metodo non farà nulla.
  • Se il nome riservato "Default" è fornito o se il metodo viene chiamato da un client, mostrerà un errore.
  • Se ci sono parti nel gruppo di collisione quando viene rimosso, queste parti mantengono ancora lo stesso nome del gruppo di collisione. Il comportamento fisico delle parti in un gruppo rimosso è indefinito, quindi si consiglia di spostare qualsiasi parte in un gruppo rimosso in un altro Gruppo, come il Gruppo"Default".

Nota che questo metodo ha un leggero sovraffollamento delle prestazioni in base al numero di BaseParts nell'area di lavoro, quindi si consiglia di registrare tutti i gruppi di collisione all'edit time attraverso il Studio editor e chiamare questo metodo il meno possibile frequentemente.

Parametri

name: string

Restituzioni

void

Eventi