PhysicsService

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio

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.Puedes registrar un grupo de colisión a través de RegisterCollisionGroup() y asignarle partes por medio de establecer la propiedad de esas partes CollisionGroup a la nombre del grupo de colisión.

La creación, eliminación y modificación de las relaciones de colisión entre grupos de colisión se limita al lado del servidor Scripts .

Vea filtrado de colisiones para detalles de uso en Studio y dentro de los scripts.

Resumen

Métodos

Propiedades

Métodos

CollisionGroupSetCollidable

()

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

Parámetros

name1: string
Valor predeterminado: ""
name2: string
Valor predeterminado: ""
collidable: boolean
Valor predeterminado: ""

Devuelve

()

CollisionGroupsAreCollidable

Devuelve si los dos grupos de colisión especificados colisionarán.Este método también devolverá verdadero si alguno de los grupos no está registrado, ya que la máscara de colisión predeterminada se superpone con todos los grupos.

Parámetros

name1: string
Valor predeterminado: ""
name2: string
Valor predeterminado: ""

Devuelve

GetMaxCollisionGroups

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


Devuelve

GetRegisteredCollisionGroups

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


<th>Tipo</th>
<th>Descripción</th>
</tr>
</thead>
<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>
Miembro

Devuelve

IsCollisionGroupRegistered

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

Parámetros

name: string
Valor predeterminado: ""

Devuelve

RegisterCollisionGroup

()

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 una ligera sobrecarga de rendimiento basada 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 editar a través del editor de Studio y llame a UnregisterCollisionGroup() y RenameCollisionGroup() tan infrecuentemente como pueda.

Parámetros

name: string
Valor predeterminado: ""

Devuelve

()

Muestras de código

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

()

Renombra el grupo de colisión registrado especificado, pero no renombra la propiedad de las piezas que utilizan el grupo.El primer argumento de este método es el nombre del grupo para renombrar, el segundo argumento es el nuevo nombre para el grupo.Si el grupo especificado no existe, este método no hará nada.Las convenciones de nomenclatura para el nuevo nombre siguen las mismas reglas que si el grupo se estaba creando con RegisterCollisionGroup() .

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

  • Nombre inválido o vacío proporcionado para cualquiera de los argumentos.
  • El método se llama desde un cliente.

Tenga en cuenta que este método tiene una ligera sobrecarga de rendimiento basada en el número de 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 de Studio y los renombre tan infrecuentemente como sea posible.

Parámetros

from: string
Valor predeterminado: ""
to: string
Valor predeterminado: ""

Devuelve

()

UnregisterCollisionGroup

()

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 producirá un error.
  • Si hay alguna parte en el grupo de colisión cuando se elimina, esas partes mantendrán el mismo nombre de grupo de colisión.El comportamiento físico de las piezas en un grupo eliminado no está definido, por lo que se recomienda mover cualquier pieza en un grupo eliminado a otro grupo, como el grupo "Default".

Tenga en cuenta que este método tiene una ligera sobrecarga de rendimiento basada en el número de 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 de Studio y llame a este método tan infrecuentemente como sea posible.

Parámetros

name: string
Valor predeterminado: ""

Devuelve

()

Eventos