我有一个脚本,它使用
BasePart
函数在 SubtractAsync
中随机生成地下房间。它工作得很好,但是CollisionFidelity
不准确,导致我无法进入房间。
这是代码:
[...]
for _,i in workspace:GetPartsInPart(p) do -- Gets parts to be cut into
local succ, err = pcall(function() -- pcall ignores part if it cannot be cut into (none of the parts I have with models need to be cut into)
local fi = i:SubtractAsync({b.RemoveFromTerrain}) -- Cuts
fi.Parent = i.Parent -- Replaces part with cut part
i:Destroy()
end)
end
[...]
请注意,尽管速度相当慢,但如果我能让它工作,那么在我的情况下,使用
SubtractAsync
所带来的性能损失将是值得的。
我尝试过以下方法:
CollisionFidelity
-> 无法设置,因为没有(The current thread cannot write 'CollisionFidelity' (lacking capability Plugin)
)CollisionFidelity
设置在我要剪切的部分上 -> BaseParts 没有 CollisionFidelity
属性如文档中所述,SubtractAsync/UnionAsync 中的第二个参数是碰撞保真度
碰撞保真度:Enum.CollisionFidelity 生成的 UnionOperation 的 Enum.CollisionFidelity 值。 默认值:“默认”
所以使用
local fi = i:SubtractAsync({b.RemoveFromTerrain}, Enum.CollisionFidelity.PreciseConvexDecomposition) -- Cuts