Um conjunto é um ou mais partes soldados por um WeldConstraint rígido ou conectados por juntas móveis, como Motor6Ds. Você pode agrupar um conjunto de partes em um contêiner de modelo para organizar rapidamente as partes e objetos relacionados como um único ativo.



De uma perspectiva de física, um conjunto é considerado um único corpo rígido, o que significa que nenhuma força pode empurrar ou puxar as partes conectadas uma da outra, e elas se moverão como uma unidade única. Todas as forças aplicadas a uma BasePart específica são aplicadas ao seu conjunto — por exemplo, BasePart:ApplyImpulse() aplica impulso ao conjunto em BasePart.AssemblyCenterOfMass.
Propriedades do conjunto
As seguintes propriedades de BasePart mostram dados sobre seu conjunto. Seus valores serão os mesmos para qualquer parte no mesmo conjunto, portanto, não importa qual parte você use.
| Propriedade | Descrição |
|---|---|
| BasePart.AssemblyLinearVelocity | O vetor de velocidade linear do conjunto da parte. Definir a velocidade diretamente pode levar a movimentos irreais, então o uso de um VectorForce ou LinearVelocity é preferido, ou BasePart:ApplyImpulse() para uma alteração instantânea na velocidade linear. |
| BasePart.AssemblyAngularVelocity | O vetor de velocidade angular do conjunto da parte. Definir a velocidade diretamente pode levar a movimentos irreais, então o uso de um Torque ou AngularVelocity é preferido, ou BasePart:ApplyAngularImpulse() para uma alteração instantânea na velocidade angular. |
| BasePart.AssemblyCenterOfMass | Uma posição apenas para leitura calculada a partir da massa e posição de todas as partes no conjunto. Uma força aplicada ao centro de massa não causará aceleração angular, apenas linear. |
| BasePart.AssemblyMass | A soma da BasePart.Mass de todas as partes no conjunto. Se o conjunto tiver uma parte ancorada, a massa do conjunto é considerada infinita. |
| BasePart.AssemblyRootPart | A parte escolhida automaticamente para representar a parte raiz do conjunto. |
Parte raiz do conjunto
Todo conjunto tem uma parte raiz indicada pela propriedade AssemblyRootPart. Esta é a parte que não se move quando as transformações de Motor6D são atualizadas, assim como a parte usada para manter a replicação de física e a propriedade de rede consistentes.
Você não pode definir explicitamente a parte raiz, mas os seguintes fatores afetam a probabilidade do mais alto para o mais baixo:

Uma parte Anchored sempre será designada como a parte raiz.

Partes com Massless definido como falso (padrão) têm precedence.

Valores mais altos de RootPriority têm precedence.

Precedência baseada no tamanho da parte (maior área da face), com multiplicadores para tipos de partes específicos. Seats e VehicleSeats recebem o maior multiplicador, seguidos por partes nomeadas HumanoidRootPart, então partes nomeadas Torso.
Comportamento de ancoragem
Quando uma das partes de um conjunto é ancorada, essa parte se torna a parte raiz e todas as outras partes se tornam implicitamente ancoradas junto com ela. A seguinte sequência ilustra esse comportamento.
Abaixo, quatro partes estão soldadas juntas com WeldConstraints (barras verdes) para formar um único conjunto, como indicado pelos contornos coloridos correspondentes.

Quatro partes soldadas para se tornar um único conjunto Se apenas uma parte do conjunto estiver ancorada, o conjunto não mudará, exceto pela possível mudança da parte raiz (a parte ancorada sempre tem a maior prioridade para se tornar a parte raiz).

Parte ancorada (como indicado com um ícone de âncora) se torna a nova parte raiz Se mais de uma parte estiver ancorada, o conjunto se separará. Abaixo, tanto as partes esquerda quanto superior estão ancoradas, então o conjunto original se separa em dois conjuntos, como mostrado pelos contornos coloridos. Além disso, a WeldConstraint entre os dois conjuntos se desativa, já que você não pode ter uma solda ativa entre dois conjuntos ancorados.

Dois conjuntos com partes ancoradas como suas respectivas partes raiz