PhysicsService

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Serviço

PhysicsService principalmente contiene métodos para trabajar con grupos de colisión que definen si un conjunto de partes puede o no colisionar con partes en otros grupos de colisión. Puede registrar un grupo de colisión a través de Class.PhysicsService:RegisterCollisionGroup()|RegisterCollisionGroup

La creación, eliminación y modificación de las relaciones de colisión entre grupos de colisión está limitada a Scripts del lado del servidor.

Vea Filtro de colisión para obtener detalles de uso en Studio y dentro de los scripts.

Resumo

Métodos

Propriedades

Métodos

CollisionGroupSetCollidable

void

Establece el estado de colisión entre dos grupos. Este método lanzará un error si uno de los grupos no está registrado, por lo que se recomienda que confirme el registro de cada grupo a través de PhysicsService:IsCollisionGroupRegistered() antes de realizar esta llamada.

Parâmetros

name1: string
name2: string
collidable: bool

Devolução

void

CollisionGroupsAreCollidable

Regresa si los dos grupos de colisión especificados chocarán. Este método también devolverá true si uno de los grupos no está registrado, ya que la máscara de colisión predeterminada se interpone con todos los grupos.

Parâmetros

name1: string
name2: string

Devolução

GetMaxCollisionGroups

Devuelve el número máximo de grupos de colisión que soporta el motor. Este valor actualmente es 32.


Devolução

GetRegisteredCollisionGroups

Devuelve una tabla con información sobre todos los grupos de colisión del lugar. Cada valor en la tabla devuelta es una tabla y contiene dos miembros:


<tbody>
<tr>
<td>máscara</td>
<td>entero</td>
<td>La máscara del grupo de colisión; solo para uso interno.</td>
</tr>
<tr>
<td>nombre</td>
<td>cadena</td>
<td>Nombre del grupo de colisión.</td>
</tr>
</tbody>
MiembroTipoDescripción

Devolução

IsCollisionGroupRegistered

Revisa si se ha registrado un grupo de colisión. Se recomienda que llames a este método antes de llamar métodos que lanzan errores para grupos de colisión no registrados, como PhysicsService:CollisionGroupSetCollidable() .

Parâmetros

name: string

Devolução

RegisterCollisionGroup

void

Registra un nuevo grupo de colisión con el nombre dado. El nombre no puede ser "Default" .

Tenga en cuenta que este método tiene un ligero sobrepeso de rendimiento según el número de BaseParts en el espacio de trabajo, por lo que se recomienda que registre todos los grupos de colisión en el momento de editar a través del editor Studio y llame a Class.PhysicsService:UnregisterCollisionGroup()|Un

Parâmetros

name: string

Devolução

void

Amostras de código

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

Renombra el grupo de colisión registrado especificado, pero no renombra el <a href="/reference/engine/databases/databases.md"> Class.BasePart.CollisionGroup|CollisionGroup</a> propiedad de las partes que utilizan el grupo. El primer argumento de este método es el nombre del grupo para renombrar, el segundo argumento es el

Este método lanzará un error de tiempo de ejecución en las siguientes situaciones:

  • Nombre no válido o vacío proporcionado para cualquier argumento.
  • El método se llama desde un cliente.

Tenga en cuenta que este método tiene un ligero sobrepeso de rendimiento basado en el número de BaseParts en el espacio de trabajo, por lo que se recomienda que registre todos los grupos de colisión en el momento de edición a través del editor Studio y renombrearlos tan infrecuentemente como sea posible.

Parâmetros

from: string
to: string

Devolução

void

UnregisterCollisionGroup

void

No registra el grupo de colisión para el nombre dado, con los siguientes comportamientos:

  • Si se proporciona un nombre inválido, el método no hará nada.
  • Si el nombre reservado "Default" se proporciona o si el método se llama desde un cliente, se lanzará un error.
  • Si hay alguna parte en el grupo de colisión cuando se elimina, esas partes todavía mantendrán el mismo nombre de grupo de colisión. El comportamiento físico de las partes en un grupo eliminado es definido, por lo que se recomienda mover cualquier parte en un grupo eliminado a otro grupo, como el "Default".

Tenga en cuenta que este método tiene un ligero sobrepeso de rendimiento basado en el número de BaseParts en el espacio de trabajo, por lo que se recomienda que registre todos los grupos de colisión en el momento de edición a través del editor Studio y llame a este método con la mayor frecuencia posible.

Parâmetros

name: string

Devolução

void

Eventos