Motor Sınıfı
PartOperation
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Özet
Özellikler
Yöntemler
SubstituteGeometry(source: Instance):() |
Devralınan Üyeler
TriangleMeshPart kaynağından 3 tane devralındı
BasePart kaynağından 105 tane devralındı
PVInstance kaynağından 4 tane devralındı
Instance kaynağından 57 tane devralındı
Object kaynağından 6 tane devralındı
Devralan
API Referansı
Özellikler
Yöntemler
SubstituteGeometry
Parametreler
Dönüşler
()
Kod Örnekleri
Dönüşüm Geometrisi ve Düşürme Kısıtlamaları
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,
}
-- İşlemi pcall() içerisinde birleştirme işlemini yapın çünkü asenkron
local success, newParts = pcall(function()
return GeometryService:UnionAsync(mainPart, otherParts, options)
end)
if success and #newParts > 0 and mainPart:IsA("PartOperation") then
-- Sonuçlanan işlemin ilk parçasını dönüşüm için kullanılacak parça olarak ayarlayın
-- İlk parça basitçe bir seçenek; bu herhangi bir PartOperation olabilir
local substitutePart = newParts[1]
-- Parçayı ana parçanın konumuna yeniden konumlandırın
substitutePart.CFrame = mainPart.CFrame
-- Korunacak veya düşürülecek kısıtlamaları/eklemeleri hesaplayın
local recommendedTable = GeometryService:CalculateConstraintsToPreserve(mainPart, newParts, constraintOptions)
-- Ana parçanın geometrisini dönüşüm geometrisi ile değiştirin
mainPart:SubstituteGeometry(substitutePart)
-- Dönüşüm ile otomatik olarak korunmayan kısıtlamaları/eklemeleri düşürün
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
-- Diğer parçaları yok et
for _, otherPart in pairs(otherParts) do
otherPart.Parent = nil
otherPart:Destroy()
end
end