PartOperation

Mostrar obsoleto

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

Uma classe abstrata que todas as peças baseadas em modelagem sólida herdam.

Resumo

Propriedades

Propriedades herdados de TriangleMeshPartPropriedades herdados de BasePartPropriedades herdados de PVInstance

Métodos

Métodos herdados de BasePartMétodos herdados de PVInstance

Eventos

Eventos herdados de BasePart

Propriedades

RenderFidelity

Segurança do plugin
Ler Parallel

Essa propriedade determina o nível de detalhe que a peça modelada sólida será mostrada em.Pode ser definido para os valores possíveis do Enum.RenderFidelity enum.

O valor padrão é Automatic , significando que o detalhe da peça é baseado na distância dela da câmera como descrito na tabela a seguir.


<th>Fidelidade de renderização</th>
</tr>
</thead>
<tbody>
<tr>
<td>Menos de 250 metros</td>
<td>Maior</td>
</tr>
<tr>
<td>250-500 metros</td>
<td>Médio</td>
</tr>
<tr>
<td>500 ou mais metros</td>
<td>Mais Baixa</td>
</tr>
</tbody>
Distância da Câmera

SmoothingAngle

Segurança do plugin
Ler Parallel

Essa propriedade representa um ângulo em graus para um valor de limite entre normais de face em uma parte modelada sólida.Se a diferença normal for menor que o valor, as normais serão ajustadas para suavizar a diferença.Enquanto um valor entre 30 e 70 graus geralmente produz um bom resultado, valores entre 90 e 180 não são recomendados, pois podem causar um efeito de "ombra" em uniões com bordas afiadas.

Observe que a suavização não afeta os normais entre diferentes materiais ou cores diferentes.

Solid modeled part with SmoothingAngle of 0

<figcaption><code>Class.PartOperation.SmoothingAngle|SmoothingAngle</code> = 0</figcaption>
Solid modeled part with SmoothingAngle of 50

<figcaption><code>Class.PartOperation.SmoothingAngle|SmoothingAngle</code> = 50</figcaption>

TriangleCount

Somente leitura
Não replicado
Ler Parallel

O número de polígonos neste modelo sólido.

UsePartColor

Ler Parallel

Define se o PartOperation pode ser recolorido usando as propriedades BasePart.Color ou BasePart.BrickColor.Quando verdadeiro, toda a união será colorida como perante Color ou BrickColor .Quando falso, as peças na união manterão suas cores originais antes da operação de cebola ser realizada.

Métodos

SubstituteGeometry

()

Substitui a geometria deste PartOperation com a geometria de outro PartOperation .Isso torna mais fácil utilizar a geometria de uma operação de modelagem sólida como UnionAsync() , SubtractAsync() ou IntersectAsync() , mas manter propriedades, atributos, tags e filhos da parte principal, como Attachments , Constraints, ParticleEmitters, objetos leves, decalques e muito mais.Essa abordagem também contorna o potencial "flicker" de substituir completamente o original PartOperation por outro.

Observe que se você estiver chamando esse método em um PartOperation com filho Attachments ou Constraints , você deve calcular as instâncias afetadas com CalculateConstraintsToPreserve() , então soltar aquelas cujo pai recomendado seja nil .

Parâmetros

source: Instance

O PartOperation cuja geometria substituirá a geometria deste PartOperation .

Valor Padrão: ""

Devolução

()

Amostras de código

Substitute Geometry and Drop Constraints

local GeometryService = game:GetService("GeometryService")
local mainPart = workspace.PurpleBlock
local otherParts = { workspace.BlueBlock }
local options = {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
SplitApart = false,
}
local constraintOptions = {
tolerance = 0.1,
weldConstraintPreserve = Enum.WeldConstraintPreserve.All,
}
-- Perform union operation in pcall() since it's asyncronous
local success, newParts = pcall(function()
return GeometryService:UnionAsync(mainPart, otherParts, options)
end)
if success and #newParts > 0 and mainPart:IsA("PartOperation") then
-- Set first part in resulting operation as part to use for substitution
-- First part is simply an option; this can be any PartOperation
local substitutePart = newParts[1]
-- Reposition part to the position of main part
substitutePart.CFrame = mainPart.CFrame
-- Calculate constraints/attachments to either preserve or drop
local recommendedTable = GeometryService:CalculateConstraintsToPreserve(mainPart, newParts, constraintOptions)
-- Substitute main part's geometry with substitution geometry
mainPart:SubstituteGeometry(substitutePart)
-- Drop constraints/attachments that are not automatically preserved with substitution
for _, item in pairs(recommendedTable) do
if item.Attachment then
if item.ConstraintParent == nil then
item.Constraint.Parent = nil
end
if item.AttachmentParent == nil then
item.Attachment.Parent = nil
end
elseif item.WeldConstraint then
if item.Parent == nil then
item.WeldConstraint.Parent = nil
end
end
end
-- Destroy other parts
for _, otherPart in pairs(otherParts) do
otherPart.Parent = nil
otherPart:Destroy()
end
end

Eventos