所有基于 固体建模 的零件都继承的抽象类。
概要
属性
用于渲染固体模型零件的细节级别。
一个度数,用于影响固体模型零件的平滑阴影。
这个固体模型中的球面数量。
设置是否使用继承的颜色属性重新着色 PartOperation。
确定零件的物理会附着到网格的细节程度。
确定用于计算气动力和扭矩的几何表示。
确定是否是物理上移动不可的部件。
零件的组装角度的速度。
零件装配在世界空间中的中心。
零件的装配直线速度。
零件的装配总量。
对装置的根部分的引用。
确定零件的背面表面类型 (+Z 方向)。
确定零件底部面的表面类型(-Y 方向)。
确定零件的颜色。
确定世界上的 BasePart 的位置和方向。
确定零件是否会与其他零件碰撞。
确定是否在空间查询操作中考虑零件。
决定是否在 Touched 和 TouchEnded 事件触发部件。
是否或否决定零件是否投射阴影。
描述零件中心的位置在哪个世界位置。
描述零件碰撞群组的名称。
确定零件的颜色。
指示零件的当前物理属性。
确定零件的几个物理属性。
用于启用或禁用零件和组装件上的气动力。
Class.BasePart 的物理部分的 BasePart 。
在物理引擎的视角下,BasePart的实际物理大小。
确定零件前面的表面类型(-Z 方向)。
确定零件左面的表面类型(-X 方向)。
为 BasePart.Transparency 设置一个倍增器,该客户端只能看到本地客户端。
在 Studio 中选择零件。
描述零件的质量、密度和体积。
确定零件是否对其刚性身体的总质量或粒度有贡献。
确定零件的材质和默认物理属性。
Class.Material 的名称。
描述世界上部件的旋转。
指定零件的中心从其 CFrame 。
描述世界中部件的位置。
上次记录的物理更新时间。
确定零件反射天空盒子的程度。
描述允许通过“调整大小”方法描述的最小变更。
描述零件可以调整的面。
确定零件右侧的表面类型 (+X 方向)。
确定装配件的根部的主要规则。
三轴上的零件的旋转。
确定零件的尺寸 (长度、宽度、高度)。
确定零件的顶部面的表面类型 (+Y 方向)。
通过(反向)零件隐私度来确定零件的可见度。
方法
用另一个 Class.PartOperation 的几何体来代换此 Class.PartOperation 的几何体。
将角度冲击应用到装配件。
在装配的 center of mass 上应用脉冲。
将脉冲应用到指定位置的装配上。
返回零件是否可以相互碰撞。
检查您是否可以设置零件的网络所有权。
返回一个连接对象的零件表,通过任何类型的刚性关接头。
返回所有连接到此零件的关联或限制。
返回 Mass 属性的值。
返回当前玩家,这是网络的主人,或者在服务器的情况下为零。
如果游戏引擎自动决定网络所有者,返回 true。
返回零件组的基础部分。
返回包含所有 BasePart.CanCollide 真实零件的表。
返回该零件相对于此零件所给定位置的直线速度。
返回 true 如果对象连接到一个部件,它将在那里保持位置(例如 Class.BasePart.Anchored|Anchored 部件),否则返回 false。
就像使用 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 的枢轴。
形成 PVInstance 与所有的后代 PVInstances ,使 pivot 现在位于指定的 CFrame 。
属性
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 度之间的值不建议。因为角度可能会在阴影效果上导致联接有边缘
注意,平滑不会影响不同材料或不同颜色之间的普通。
UsePartColor
设置 PartOperation 可以使用 BasePart.Color 或 BasePart.BrickColor 属性重新着色。 当 true 时,整个联盟的颜色都会根据 2>Class.BasePart.Color|Color2> 或 5>
方法
SubstituteGeometry
用另一个 PartOperation9> 的几何图形替换此 PartOperation2> 的几何图形。 此方法还使用 5>Class.ParticleEmitter
注意,如果您在 PartOperation 上调用此方法,并且使用子 Attachments 或 Constraints ,您应该使用 1>Class.GeometryService:CalculateConstraintsToPreserve()|CalculateConstraintsToPreserve()1> 来计算受影响的实例,然后丢弃使用 <
参数
Class.PartOperation 的几何图将替换此 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