PhysicsService

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Service

PhysicsService contient principalement des méthodes pour travailler avec des groupes de collision qui définissent si un ensemble de pièces peut ou non coller avec des pièces dans d'autres groupes de collision. Vous pouvez enregistrer un groupe de collision via Class.PhysicsService:RegisterCollisionGroup()

La création, la suppression et la modification des relations de collision entre les groupes de collision sont limitées aux relations côté serveur Scripts .

Voir Filtre de collision pour plus de détails d'utilisation dans Studio et dans les scripts.

Résumé

Méthodes

Propriétés

Méthodes

CollisionGroupSetCollidable

void

Définit l'état de collision entre deux groupes. Ce méthode lance une erreur si l'un des groupes n'est pas enregistré, il est donc recommandé de confirmer le paramètre d'enregistrement de chaque groupe via PhysicsService:IsCollisionGroupRegistered() avant d'appeler ceci.

Paramètres

name1: string
name2: string
collidable: bool

Retours

void

CollisionGroupsAreCollidable

Renvoie si les deux groupes de collision spécifiés vont s'entrer en collision. Ce méthode renverra également vrai si l'un des groupes n'est pas enregistré, car la masque de collision par défaut se heurte à tous les groupes.

Paramètres

name1: string
name2: string

Retours

GetMaxCollisionGroups

Retourne le nombre maximum de groupes de collision que le moteur prend en charge. Ce nombre actuel est de 32.


Retours

GetRegisteredCollisionGroups

Renvoie une table avec des informations sur tous les groupes de collision du emplacement. Chaque valeur dans la table renvoyée est elle-même une table et contient deux membres :


<tbody>
<tr>
<td>masque</td>
<td>entier</td>
<td>Le masque du groupe de collision ; seulement à usage interne.</td>
</tr>
<tr>
<td>nom</td>
<td>chaîne</td>
<td>Nom du groupe de collision.</td>
</tr>
</tbody>
MembreTypeDescription

Retours

IsCollisionGroupRegistered

Vérifie si un groupe de collision est enregistré. Il est recommandé que vous appeliez cette méthode avant d'appeler les méthodes qui lancent des erreurs pour les groupes de collision non enregistrés, tels que PhysicsService:CollisionGroupSetCollidable() .

Paramètres

name: string

Retours

RegisterCollisionGroup

void

Enregistre un nouveau groupe de collision avec le nom donné. Le nom ne peut pas être "Default" .

Notez que cette méthode a une légère surcharge de performance en fonction du nombre de BaseParts dans l'espace de travail, il est donc recommandé de vous inscrire tous les groupes de collision à la fois via l'éditeur Studio et d'appeler Class.PhysicsService:UnregisterCollisionGroup()|UnregisterCollisionGroup()</

Paramètres

name: string

Retours

void

Échantillons de code

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

Renomme le groupe de collision enregistré spécifié, mais ne renomme pas Class.BasePart.CollisionGroup|CollisionGroup la propriété des parties qui utilisent le groupe. Le premier argument de ce méthode est le nom du groupe pour renommer, le deuxième argument est le nouveau nom pour le groupe. Si le groupe spécifié n

Cette méthode lancera une erreur d'exécution dans les cas suivants :

  • Nom invalide ou vide fourni pour l'un des arguments.
  • La méthode est appelée à partir d'un client.

Notez que cette méthode a une légère surcharge de performance en fonction du nombre de BaseParts dans l'espace de travail, il est donc recommandé de vous inscrire tous les groupes de collision au moment de l'édition via le éditeur Studio et de les renommer aussi souvent que possible.

Paramètres

from: string
to: string

Retours

void

UnregisterCollisionGroup

void

Désenregistre le groupe de collision pour le nom donné, avec les comportements suivants :

  • Si un nom invalide est fourni, la méthode ne fera rien.
  • Si le nom réservé "Default" est fourni ou si la méthode est appelée à partir d'un client, il lance une erreur.
  • Si il y a des parties dans le groupe de collision lorsqu'il est supprimé, ces parties vont toujours conserver le même nom de groupe de collision. Le comportement physique des parties dans un groupe supprimé est défini, il est donc recommandé de déplacer toutes les parties dans un groupe supprimé vers un autre groupe, comme le "Default" Default .

Notez que cette méthode a une légère surcharge de performance en fonction du nombre de BaseParts dans l'espace de travail, il est donc recommandé de vous inscrire tous les groupes de collision au moment de l'édition via le éditeur Studio et d'appeler ce méthode aussi fréquemment que possible.

Paramètres

name: string

Retours

void

Évènements