PartOperation
*此內容很快就會推出您所選的語言版本。
An abstract class that all parts based on solid modeling inherit from.
概要
屬性
The level of detail used to render the solid modeled part.
An angle in degrees which affects the smooth shading of a solid modeled part.
The number of polygons in this solid model.
Sets whether the PartOperation can be recolored using inherited color properties.
決定零件的物理會黏附在網格上的細節程度。
決定了用於計算空氣動力學力和扭矩的幾何代表。
是否確定零件是否可以按照物理學原理移動。
零件裝配的角度速度。
零件裝配在世界空間中的中心。
零件裝配的直線速度。
零件組裝的總量。
一個組裝根部分的引用。
決定零件背面的表面類型 (+Z 方向)。
決定零件底部面的表面類型 (-Y 方向)。
決定零件的顏色。
確定 BasePart 在世界中的位置和方向。
是否確定零件是否與其他零件碰撞。
確定要在空間查詢操作中檢視零件。
決定是否發生 Touched 和 TouchEnded 事件。
是否啟用或否啟用零件的暗影。
描述零件中心的位置在哪個世界位置。
描述零件碰撞群組的名稱。
決定零件的顏色。
指示零件的當前物理屬性。
確定零件的多個物理屬性。
用於啟用或解除零件和裝配件上的空力力量。
Class.BasePart 的物理部分的 BasePart。
BasePart 的實際物理尺寸,按照物理引擎的說明。
決定零件前面的表面類型 (-Z 方向)。
決定零件左面的表面類型 (-X 方向)。
決定對BasePart.Transparency的乘數,只對本地客戶端可見。
決定 Studio 中是否可選擇零件。
描述零件的大小,其密度和體積的產物。
確定零件是否對其剛身體的總質量或穩定性貢獻。
決定零件的材質和預設物理屬性。
Class.MaterialVariant 的名稱。
描述世界上零件的旋轉。
指定零件的中心點偏移值。
描述世界上零件的位置。
上次記錄物理更新的時間。
決定零件反射天空盒子的程度。
說明方法允許的最小尺寸變更。
描述零件可以重新尺寸的面。
決定零件右面的表面類型 (+X 方向)。
決定組裝件根部的主要規則。
三軸的旋轉度。
確定零件的尺寸 (長度、寬度、高度)。
決定零件上方面的表面類型 (+Y 方向)。
決定零件可以看到的程度(零件的反射)。
方法
Substitutes the geometry of this PartOperation with the geometry of another PartOperation.
對組裝件施加角度 impulse。
在裝配的 center of mass 上對裝配進行脈衝。
在指定位置對裝配進行脈衝。
返回零件是否能相互碰撞。
檢查您是否可以設置零件的網路擁有權。
返回任何類型的靈活組合節連接到對象的表。
返回連接到此零件的所有關聯零件或限制。
返回 Mass 屬性的值。
返回目前是網路擁有者的玩家,或是伺服器的情況下為零。
如果遊戲引擎自動決定網路擁有者,則返回 true。
返回零件組的零件。
返回與此零件交叉的所有 BasePart.CanCollide 個真實零件。
返回零件的組裝速度,與此零件相對的位置。
如果對象連接到一個會將其保留在位置的零件(例如Anchored 零件),則返回為真。
使用 Studio 調整大小工具的大小來變更對象的大小。
將指定的玩家設為網路所有者,這和所有連接的零件。
讓遊戲引擎動態決定誰會處理零件的物理學 (一個客戶或伺服器).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
從零件和其他零件在指定的陣列中交織的 геометria中創建新的 IntersectOperation。
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
從零件中創建新的 UnionOperation 零件,減去指定陣列中零件所佔的地形。
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
從零件建立新的 UnionOperation 零件,以及佔用零件在指定的陣列中的地理位置。
取得 PVInstance 的中心點。
以下是 PVInstance 和所有其子 PVInstances 的描述,以便 pivot 現在位於指定的 CFrame 。
屬性
RenderFidelity
This property determines the level of detail that the solid modeled part will be shown in. It can be set to the possible values of the Enum.RenderFidelity enum.
The default value is Automatic, meaning the part's detail is based on its distance from the camera as outlined in the following table.
Distance From Camera | Render Fidelity |
---|---|
Less than 250 studs | Highest |
250-500 studs | Medium |
500 or more studs | Lowest |
SmoothingAngle
This property represents an angle in degrees for a threshold value between face normals on a solid modeled part. If the normal difference is less than the value, normals will be adjusted to smooth the difference. While a value between 30 and 70 degrees usually produces a good result, values between 90 and 180 are not recommended as they may cause a "shadowing" effect on unions with sharp edges.
Note that smoothing does not affect the normals between different materials or different colors.
UsePartColor
Sets whether the PartOperation can be recolored using the BasePart.Color or BasePart.BrickColor properties. When true, the entire union will be colored as per Color or BrickColor. When false, the parts in the union will maintain their original colors from before the onion operation was performed.
方法
SubstituteGeometry
Substitutes the geometry of this PartOperation with the geometry of another PartOperation. This makes it easier to utilize the geometry of a solid modeling operation like UnionAsync(), SubtractAsync(), or IntersectAsync() but maintain properties, attributes, tags, and children of the main part such as Attachments, Constraints, ParticleEmitters, light objects, decals, and more. This approach also circumvents the potential "flicker" of completely replacing the original PartOperation with another.
Note that if you're calling this method on a PartOperation with child Attachments or Constraints, you should calculate the affected instances with CalculateConstraintsToPreserve(), then drop those whose recommended parent is nil.
參數
The PartOperation whose geometry will substitute the geometry of this PartOperation.
返回
範例程式碼
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