一個抽象類別,所有零件都基於 固體模型 繼承。
概要
屬性
用於渲染模型化零件的細節程度。
度數角度,會影響模型零件的平滑陰影。
此固體模型中的多邊形數量。
設置是否可以使用繼承的顏色屬性重新上色 PartOperation 。
決定零件的物理會遵守其網格的細節程度。
決定用於計算空氣動力和扭矩的幾何表示。
決定零件是否因物理學而無法移動。
零件裝配的角速度。
零件在世界空間的質量中心。
零件裝配的線速度。
零件裝配的總重量。
指向裝配的根部分。
決定零件後面的表面類型 (+Z方向)。
決定零件底面的表面類型(-Y方向)。
決定零件的顏色。
決定世界中 BasePart 的位置和方向。
決定零件是否可能與其他零件碰撞。
決定零件在空間查詢操作期間是否被考慮。
決定是否 Touched 和 TouchEnded 事件在零件上發射。
決定零件是否投射陰影。
描述零件的重心位置在哪裡。
描述零件衝突群組的名稱。
決定零件的顏色。
指示零件目前的物理特性。
決定零件的多個物理特性。
用於啟用或禁用零件和裝配的空氣動力。
物理引擎所看到的 BasePart 實際尺寸。
決定零件前面的表面類型(-Z方向)。
決定零件左面的表面類型(-X方向)。
決定只對本地客戶可見的乘數 BasePart.Transparency 。
決定零件是否可在 Studio 中選擇。
描述零件的質量、密度和體積的產品。
決定零件是否會對其剛性身體的總質量或慣性有貢獻。
決定零件的紋理和預設物理特性。
MaterialVariant 的名稱。
描述世界中零件的旋轉。
指定零件的軸偏移來自其 CFrame 。
描述零件在世界上的位置。
上次記錄物理更新的時間。
決定零件是否反映了天空盒。
描述縮放方法可允許的最小尺寸變更。
描述可以縮放零件的面。
決定零件右面的表面類型 (+X 方向)。
決定組裝根部分的主要規則。
零件在三軸上的旋轉度。
決定零件的尺寸(長度、寬度、高度)。
決定零件頂部面的表面類型 (+Y 方向)。
決定零件能被看到多少(與零件隱形度相反)。
方法
用另一個 PartOperation 的幾何圖形來取代這個 PartOperation 的幾何圖形。
對裝配應用角度脈沖。
在裝配的 center of mass 應用脈沖到裝配。
在指定位置應用脈沖到裝配。
返回零件是否可以相互碰撞。
檢查您是否可以設置零件的網絡所有權。
返回包含任何種類剛性聯組合的對象與零件的表。
返回連接到此零件的所有關節或限制。
返回 Mass 屬性的值。
返回這部分網絡所有者的當前玩家,或在伺服器的情況下返回 nil。
如果遊戲引擎自動決定此部分的網絡所有者,返回真值。
返回零件組合的基本零件。
返回包含這個部分交叉的所有 BasePart.CanCollide 真實零件的表。
返回零件在指定位置相對於此零件的線速度。
如果對象連接到會將其保持在位置的零件(例如 Anchored 零件),則返回真值;否則返回假值。
以相同於使用 Studio 縮放工具的方式變更對象的大小。
將指定的玩家設為網絡所有者,用於此網絡和所有連接的零件。
讓遊戲引擎動態決定誰會處理零件的物理(客戶端之一或服務伺服器)。
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
從零件和給定數陣列中的其他零件的重疊幾何圖中創建一個新的 IntersectOperation 。
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
從零件中創建一個新的 UnionOperation ,減去給定數陣列中零件所佔的幾何圖形。
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
從零件中創建一個新的 UnionOperation ,加上給定數陣列中零件所佔的幾何圖形。
獲得 PVInstance 的軸心。
將 以及所有其子孫 轉換為指定的 位置,使旋轉點現在位於指定的 位置。
屬性
RenderFidelity
此屬性決定了固體模型化零件將會顯示的細節程度。它可以設為 Enum.RenderFidelity 枚列的可能值。
預設值為 Automatic ,意味著零件的詳情是根據在下表中列出的相機距離來進行的。
<th>渲染穩定性</th></tr></thead><tbody><tr><td>少於 250 個單位</td><td>最高</td></tr><tr><td>250-500 格</td><td>中等</td></tr><tr><td>500 或更多個單位</td><td>最低</td></tr></tbody>
從相機的距離 |
---|
SmoothingAngle
此屬性代表在 固體模型 零件上之間的閾值值角度以度。如果正常差異小於值,則正常差異將被調整以減少差異。雖然 30 到 70 度之間的值通常會產生良好的結果,但 90 到 180 度之間的值可能會對具有鋒利邊緣的聯盟造成「陰影」效果,因此不建議使用。
請注意,平滑不會影響不同材料或不同顏色之間的正常。

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

<figcaption><code>Class.PartOperation.SmoothingAngle|SmoothingAngle</code> = 50</figcaption>
UsePartColor
設置是否可以使用 PartOperation 或 BasePart.Color 或 BasePart.BrickColor 屬性重新上色。當真實時,整個聯盟將以 Color 或 BrickColor 的方式被彩色。當為 false 時,聯盟中的零件會保留從洋蔥操作執行之前的原始顏色。
方法
SubstituteGeometry
用另一個 PartOperation 的幾何圖形來取代這個 PartOperation 的幾何圖形。這使得使用像 UnionAsync()、SubtractAsync() 或 IntersectAsync() 等固體模型操作的幾何學變得更容易,但仍保留主部分的特性、標籤、標籤和子部分的兒童,例如 Attachments、Constraints、ParticleEmitters、輕型對象、裝飾和更多。這種方法也可以避免完全替換原始 PartOperation 的潛在"閃爍"。
請注意,如果您在 PartOperation 上呼叫此方法並將其作為子 Attachments 或 Constraints 使用,您應該使用 CalculateConstraintsToPreserve() 計算受影響的實例,然後放棄那些建議的父親是 nil 的。
參數
其 PartOperation 的幾何圖形將會替換此 PartOperation 的幾何圖形。
返回
範例程式碼
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