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.
Tüm parçaların katı modellenmeye dayanarak miras aldığı soyut bir sınıf.
Özet
Özellikler
Katı modellenmiş parçayı görselleştirmek için kullanılan ayrıntı seviyesi.
Katı modellenmiş bir parçanın pürüzsüz gölgelenmesini etkileyen derecelik bir açı.
Bu katı modeldeki çokgen sayısı.
PartOperation 'nin miras alınan renk özellikleri kullanılarak yeniden renklendirilebilir olup olmadığını ayarlar.
Parçanın fiziğinin ağına bağlı olacağı detay seviyesini belirler.
Hava dinamik güçleri ve torkları hesaplamak için kullanılan geometrik temsili belirler.
Bir parçanın fiziğe göre hareketsiz olup olmadığını belirler.
Parçanın montajındaki açısal hız.
Dünya uzayındaki parçanın montajının kütle merkezi.
Parçanın montajının lineer hızı.
Parçanın montajının toplam masesi.
Montajın kök kısmına bir referans.
Bir parçanın arka yüzü için yüzey türünü belirler (+Z yönü).
Bir parçanın alt yüzü için yüzey türünü belirler (-Y yönü).
Bir parçanın rengini belirler.
Dünyadaki BasePart konumunu ve yönünü belirler.
Bir parçanın diğer parçalarla çarpışıp çarpışmayacağını belirler.
Parçanın uzay sorgu operasyonları sırasında dikkate alınıp alınmadığını belirler.
Touched ve TouchEnded olaylarının parçada ateşlenip ateşlenmediğini belirler.
Bir parçanın gölge atıp atmadığını belirler.
Bir parçanın kütle merkezinin bulunduğu dünya konumunu tanımlar.
Bir parçanın çarpışma grupadını tanımlar.
Bir parçanın rengini belirler.
Parçanın mevcut fiziksel özelliklerini gösterir.
Bir parçanın birkaç fiziksel özelliğini belirler.
Parçalar ve montajlar üzerinde hava dinamik güçlerini etkinleştirmek veya devre dışı bırakmak için kullanılır.
Fizik motoru tarafından ele alınan BasePart 'nin gerçek fiziksel boyutu.
Bir parçanın ön yüzü için yüzey türünü belirler (-Z yönü).
Bir parçanın sol yüzünün yüzey türünü belirler (-X yönü).
Yerel müşteriye yalnızca görünen bir çarpanı BasePart.Transparency belirler, ki bu sadece yerel müşteridir.
Bir parçanın Studio'da seçilebilir olup olmadığını belirler.
Parçanın kütlesini, yoğunluğunun ve hacminin ürününü tanımlar.
Parçanın sert vücuttoplam kütlesine veya süspansiyonuna katkıda bulunup bulunmadığını belirler.
Bir parçanın dokusunu ve varsayılan fiziksel özelliklerini belirler.
MaterialVariant adı.
Dünyadaki parçanın dönüşünü tanımlar.
Parçanın merkezinin CFrame 'sinden ayrılma ofsetini belirtir.
Parçanın dünyadaki konumunu tanımlar.
Son kaydedilen fizik güncellemesinden beri geçen süre.
Bir parçanın gökyüzünü ne kadar yansıttığını belirler.
Yeniden boyutlandırma yöntemi tarafından kabul edilen en küçük boyut değişikliğini tanımlar.
Bir parçanın yeniden boyutlandırılabileceği yüzleri tanımlar.
Bir parçanın Sağ yüzünün yüzey türünü belirler (+X yönü).
Bir montajın kök parçasını belirlemenin ana kuralı.
Üç eksen için parçanın derecelerinde dönmesi.
Bir parçanın boyutlarını belirler (uzunluk, genişlik, yükseklik).
Bir parçanın üst yüzünün türünü belirler (+Y yönü).
Bir parçanın ne kadar görülebildiğini belirler (parça saydamlığının tersi).
Yöntemler
Bu PartOperation ın geometrisini başka bir PartOperation geometrisiyle değiştirir.
Montaja bir açısal hız uygulayın.
Montajın center of mass 'sinde montaja bir tepki uygulayın.
Belirtilen pozisyonda montaja bir tepki uygulayın.
Parçaların birbiriyle çarpıp çarpıp olmadığını döndürür.
Bir parçanın ağ sahipliğini ayarlayabileceğinizi kontrol eder.
Objeye herhangi bir sert bağlantı ile bağlı bir parça tablosu döndürür.
Bu Parçaya bağlı olan tüm Eklemleri veya Kısıtları geri döndür.
Mass özelliğinin değerini döndürür.
Bu parçanın ağ sahibi olan mevcut oyuncuyu veya nil sunucu durumunda döndürür.
Oyun motoru bu parça için ağ sahibini otomatik olarak karar verirse gerçek döndürür.
Bir parça grubunun temel parçasını döndürür.
Bu parçayla kesişen tüm BasePart.CanCollide gerçek parçaların bir tablosunu döndürür.
Bu parçanın montajının verilen konuma göre lineer hızını döndürür.
Nesne bir yerde tutacak bir parçaya bağlıysa gerçek döndürür (örneğin bir Anchored parçası), aksi takdirde yalan döndürür.
Bir nesnenin boyutunu, Studio yeniden boyutlandırma aracını kullanarak gibi değiştirir.
Verdiğiniz oyuncuyu bu ve tüm bağlı parçalar için ağ sahibi olarak ayarlar.
Oyun motorunun dinamik olarak kimin parçanın fiziğini ele alacağına karar vermesine izin verin (müşterilerden biri veya sunucu).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Parçanın ve verilen dizedeki diğer parçaların örtüşen geometrisinden yeni bir IntersectOperation oluşturur.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Parçadan yeni bir UnionOperation oluşturur, verilen matristeki parçaların geometrisinden eksilerek.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Parçadan yeni bir UnionOperation ve verilen matristeki parçalar tarafından işgal edilen geometri oluşturur.
Bir PVInstance 'nin merkezini alır.
Dönüştürür PVInstance tüm altındaki PVInstances ile birlikte pivotun şimdi belirtilen CFrame 'de yer aldığını, böylece dönüşüm aşağıdaki gibi gerçekleşir:
Etkinlikler
Şuradan alınan Etkinlikler: BasePartBir parça, fiziksel hareketin sonucu olarak başka bir parçaya dokunmayı bıraktığında ateş eder.
Bir parça fiziksel hareketin sonucu olarak başka bir parçaya dokunduğunda ateş eder.
Özellikler
RenderFidelity
Bu özellik, katı modellenmiş parçanın gösterileceği ayrıntı seviyesini belirler.Enum.RenderFidelity enum'in olası değerlerine ayarlanabilir.
Varsayılan değer Automatic , yani parçanın ayrıntıları aşağıdaki tabloda belirtildiği gibi kameradan uzaklığına dayanıyor.
<th>Görüntü Kalitesi Render Etme</th></tr></thead><tbody><tr><td>250'den az çiviler</td><td>En yüksek</td></tr><tr><td>250-500 çiviler</td><td>Orta düzey</td></tr><tr><td>500 veya daha fazla saplama</td><td>En Düşük</td></tr></tbody>
Kamera'dan mesafe |
---|
SmoothingAngle
Bu özellik, katı modellenmiş bir parçada yüz normalleri arasında bir eşik değeri için derecelik bir açı temsil eder.Normal fark değeri değerden daha az ise, normaller farkı düzleştirmek için ayar edilecektir.30 ile 70 derece arasındaki bir değer genellikle iyi bir sonuç verirken, 90 ile 180 arasındaki değerler keskin kenarlı sendikalara "gölgeleme" etkisi yaratabileceğinden önerilmez.
Düzleştirmenin farklı malzemeler veya farklı renkler arasındaki normal değerleri etkilemediğini unutmayın.

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

<figcaption><code>Class.PartOperation.SmoothingAngle|SmoothingAngle</code> = 50</figcaption>
UsePartColor
PartOperation ın BasePart.Color veya BasePart.BrickColor özelliklerini kullanarak yeniden renklendirilebilir olup olmadığını ayarlar.Gerçek olduğunda, tüm birlik şu şekilde renklenecektir: Color veya BrickColor.Yanlış olduğunda, birliğin parçaları soğan işlemi yapılmadan önce orijinal renklerini korur.
Yöntemler
SubstituteGeometry
Bu PartOperation ın geometrisini başka bir PartOperation geometrisiyle değiştirir.Bu, , veya gibi katı modelleme işlemlerinin geometrisini kullanmayı kolaylaştırır, ancak özellikleri, öznitelikleri, etiketleri ve ana parçanın çocuklarını korur, ışık nesneleri, resimler ve daha fazlası gibi ana parçanın özelliklerini korur.Bu yaklaşım ayrıca orijinal PartOperation 'yi başka biriyle tamamen değiştirmenin potansiyel "flicker"ini de atlar.
Bu yöntemi çocuk PartOperation veya çocuk Attachments veya çocuk Constraints ile çağırıyorsanız, etkilenen örnekleri CalculateConstraintsToPreserve() ile hesaplamalı ve önerilen ebeveyniniz nil olanları bırakmalısınız.
Parametreler
Geometrisi bu PartOperation 'in geometrisini değiştirecek olan PartOperation .
Dönüşler
Kod Örnekleri
The following example substitutes the geometry of one PartOperation with the geometry of another PartOperation, then drops constraints/attachments that should not be preserved after substitution.
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