Kelas Engine
PartOperation
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Rangkuman
Properti
Metode
SubstituteGeometry(source: Instance):() |
Anggota yang Diwariskan
3 yang diwarisi dari TriangleMeshPart
105 yang diwarisi dari BasePart
4 yang diwarisi dari PVInstance
57 yang diwarisi dari Instance
6 yang diwarisi dari Object
Diwariskan oleh
Referensi API
Properti
Metode
SubstituteGeometry
Parameter
Memberikan nilai
()
Contoh Kode
Mengganti Geometri dan Menjatuhkan Keterikatan
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,
}
-- Lakukan operasi union dalam pcall() karena bersifat asinkron
local success, newParts = pcall(function()
return GeometryService:UnionAsync(mainPart, otherParts, options)
end)
if success and #newParts > 0 and mainPart:IsA("PartOperation") then
-- Atur bagian pertama dalam operasi yang dihasilkan sebagai bagian yang akan digunakan untuk penggantian
-- Bagian pertama hanyalah sebuah opsi; ini bisa menjadi PartOperation apa saja
local substitutePart = newParts[1]
-- Posisikan kembali bagian ke posisi bagian utama
substitutePart.CFrame = mainPart.CFrame
-- Hitung keterikatan yang akan dipertahankan atau dijatuhkan
local recommendedTable = GeometryService:CalculateConstraintsToPreserve(mainPart, newParts, constraintOptions)
-- Ganti geometri bagian utama dengan geometri pengganti
mainPart:SubstituteGeometry(substitutePart)
-- Jatuhkan keterikatan yang tidak secara otomatis dipertahankan dengan penggantian
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
-- Hancurkan bagian lainnya
for _, otherPart in pairs(otherParts) do
otherPart.Parent = nil
otherPart:Destroy()
end
end