PhysicsService
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
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
Définit l'état de collision entre deux groupes.
Retourne si les deux groupes vont s'entrer en collision.
Renvoie le nombre max de groupes de collision.
Renvoie une table avec des informations sur tous les groupes de collision de l'emplacement.
Vérifie si un groupe de collision est enregistré.
Enregistre un nouveau groupe de collision avec le nom donné.
Renomme le groupe de collision spécifié.
Ne désigne pas le groupe de collision pour le nom donné.
Propriétés
Méthodes
CollisionGroupSetCollidable
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
Retours
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
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>
Membre | Type | Description |
---|
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
Retours
RegisterCollisionGroup
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
Retours
Échantillons de code
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
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
Retours
UnregisterCollisionGroup
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.