PartOperation

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

所有基于 固体建模 的零件都继承的抽象类。

概要

属性

继承自TriangleMeshPart属性继承自BasePart属性继承自PVInstance属性

方法

  • 用另一个 Class.PartOperation 的几何体来代换此 Class.PartOperation 的几何体。

继承自BasePart方法继承自PVInstance方法

活动

继承自BasePart活动

属性

RenderFidelity

插件安全性
读取并联

这个属性决定实体模型零件在什么级别的细节会显示。它可以设置为 Enum.RenderFidelity 枚。

默认值是 Automatic,该部分的细节基于其从相机距离为所述在下表中列出的距离。


<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 度之间的值不建议。因为角度可能会在阴影效果上导致联接有边缘

注意,平滑不会影响不同材料或不同颜色之间的普通。

Solid modeled part with SmoothingAngle of 0

<figcaption><code>Class.PartOperation.SmoothingAngle|SmoothingAngle</code> = 0</figcaption>
Solid modeled part with SmoothingAngle of 50

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

TriangleCount

只读
未复制
读取并联

这个固体模型中的球面数量。

UsePartColor

读取并联

设置 PartOperation 可以使用 BasePart.ColorBasePart.BrickColor 属性重新着色。 当 true 时,整个联盟的颜色都会根据 2>Class.BasePart.Color|Color2> 或 5>

方法

SubstituteGeometry

void

用另一个 PartOperation9> 的几何图形替换此 PartOperation2> 的几何图形。 此方法还使用 5>Class.ParticleEmitter

注意,如果您在 PartOperation 上调用此方法,并且使用子 AttachmentsConstraints ,您应该使用 1>Class.GeometryService:CalculateConstraintsToPreserve()|CalculateConstraintsToPreserve()1> 来计算受影响的实例,然后丢弃使用 <

参数

source: Instance

Class.PartOperation 的几何图将替换此 PartOperation 的几何图。


返回

void

代码示例

Substitute Geometry and Drop Constraints

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

活动