Classe do mecanismo
PartOperation
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Resumo
Propriedades
Métodos
SubstituteGeometry(source: Instance):() |
Membros herdados
3 herdada do TriangleMeshPart
105 herdada do BasePart
4 herdada do PVInstance
57 herdada do Instance
6 herdada do Object
Herdado por
Referência API
Propriedades
Métodos
SubstituteGeometry
Parâmetros
Devolução
()
Amostras de código
Substituir Geometria e Remover Restrições
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,
}
-- Realiza a operação de união em pcall() já que é assíncrona
local success, newParts = pcall(function()
return GeometryService:UnionAsync(mainPart, otherParts, options)
end)
if success and #newParts > 0 and mainPart:IsA("PartOperation") then
-- Define a primeira parte na operação resultante como parte a ser usada para substituição
-- A primeira parte é simplesmente uma opção; isso pode ser qualquer PartOperation
local substitutePart = newParts[1]
-- Reposiciona a parte para a posição da parte principal
substitutePart.CFrame = mainPart.CFrame
-- Calcula restrições/anjos a serem preservados ou removidos
local recommendedTable = GeometryService:CalculateConstraintsToPreserve(mainPart, newParts, constraintOptions)
-- Substitui a geometria da parte principal pela geometria de substituição
mainPart:SubstituteGeometry(substitutePart)
-- Remove restrições/anjos que não são automaticamente preservados com a substituição
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
-- Destrói outras partes
for _, otherPart in pairs(otherParts) do
otherPart.Parent = nil
otherPart:Destroy()
end
end