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 principalmente contiene metodi per lavorare con gruppi di collisione che definiscono se un insieme di parti può o non può collidere con parti in altri gruppi di collisione.Puoi registrare un gruppo di collisioni attraverso e assegnare parti a esso impostando la proprietà di quelle parti alla nome del gruppo di collisione.

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

Vedi Filtro di collisione per i dettagli di utilizzo in Studio e all'interno degli script.

Sommario

Metodi

Proprietà

Metodi

CollisionGroupSetCollidable

()

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

Parametri

name1: string
Valore predefinito: ""
name2: string
Valore predefinito: ""
collidable: boolean
Valore predefinito: ""

Restituzioni

()

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 sovrappone a tutti i gruppi.

Parametri

name1: string
Valore predefinito: ""
name2: string
Valore predefinito: ""

Restituzioni

GetMaxCollisionGroups

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


Restituzioni

GetRegisteredCollisionGroups

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


<th>Tipo</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td>maschera</td>
<td>integro</td>
<td>La maschera del Gruppodi collisione; solo per uso interno.</td>
</tr>
<tr>
<td>nome</td>
<td>stringa</td>
<td>Nome del Gruppodi collisione.</td>
</tr>
</tbody>
Membro

Restituzioni

IsCollisionGroupRegistered

Verifica se un gruppo di collisioni è registrato.Si consiglia di chiamare questo metodo prima di chiamare metodi che lanciano errori per gruppi di collisione non registrati, come PhysicsService:CollisionGroupSetCollidable() .

Parametri

name: string
Valore predefinito: ""

Restituzioni

RegisterCollisionGroup

()

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

Nota che questo metodo ha un leggero aumento delle prestazioni basato sul numero di nell'area di lavoro, quindi è consigliato registrare tutti i gruppi di collisione all'ora dell'edizione attraverso l'editor Studio e chiamare e il più raramente possibile.

Parametri

name: string
Valore predefinito: ""

Restituzioni

()

Campioni di codice

This example demonstrates one basic use of collision groups. It assigns BallPart to "CollisionGroupBall" and DoorPart to "CollisionGroupDoor", then makes the two groups non-collidable using PhysicsService:CollisionGroupSetCollidable().

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

()

Rinomina il Gruppodi collisione registrato specificato, ma non non rinomina la proprietà CollisionGroup delle parti che utilizzano il Gruppo.Il primo argomento di questo metodo è il nome del gruppo da rinominare, il secondo argomento è il nuovo nome del Gruppo.Se il gruppo specificato non esiste, questo metodo non farà nulla.Le convenzioni di denominazione per il nuovo nome seguono le stesse regole come se il gruppo fosse stato creato con RegisterCollisionGroup() .

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

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

Nota che questo metodo ha un leggero overhead di prestazioni basato sul numero di in spazio di lavoro, quindi è consigliato registrare tutti i gruppi di collisione all'ora dell'edizione attraverso l'editor Studio e rinominarli il più raramente possibile.

Parametri

from: string
Valore predefinito: ""
to: string
Valore predefinito: ""

Restituzioni

()

UnregisterCollisionGroup

()

Annulla 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" viene fornito o se il metodo viene chiamato da un client, verrà lanciato un errore.
  • Se ci sono parti nel gruppo di collisione quando viene rimosso, quelle parti manterranno comunque lo stesso nome del gruppo di collisione.Il comportamento fisico delle parti in un gruppo rimosso non è definito, quindi è consigliato spostare qualsiasi parte in un gruppo rimosso in un altro Gruppo, come il Gruppo"Default".

Nota che questo metodo ha un leggero overhead di prestazioni basato sul numero di in spazio di lavoro, quindi è consigliato registrare tutti i gruppi di collisione all'ora dell'edizione attraverso l'editor Studio e chiamare questo metodo il più raramente possibile.

Parametri

name: string
Valore predefinito: ""

Restituzioni

()

Eventi