PartOperation

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Eine abstrakte Klasse, von der alle Teile, die auf Solidenmodellierung basieren, erben.

Zusammenfassung

Eigenschaften

Eigenschaften von TriangleMeshPart übernommenEigenschaften von BasePart übernommenEigenschaften von PVInstance übernommen

Methoden

Methoden von BasePart übernommenMethoden von PVInstance übernommen

Ereignisse

Ereignisse von BasePart übernommen

Eigenschaften

RenderFidelity

Plugin-Sicherheit
Parallel lesen

Diese Eigenschaft legt fest, auf welchem Detailgrad das solid modellierte Teil angezeigt wird.Es kann auf die möglichen Werte des Enum.RenderFidelity Enum festgelegt werden.

Der Standardwert ist Automatic , was bedeutet, dass sich die Details des Teils auf seine Entfernung von der Kamera beziehen, wie im folgenden Tabelle beschrieben.


<th>Rendergenauigkeit</th>
</tr>
</thead>
<tbody>
<tr>
<td>Weniger als 250 Stollen</td>
<td>Höchste</td>
</tr>
<tr>
<td>250-500 klötze</td>
<td>Mittel</td>
</tr>
<tr>
<td>500 oder mehr stollen</td>
<td>Niedrigste</td>
</tr>
</tbody>
Entfernung von der Kamera

SmoothingAngle

Plugin-Sicherheit
Parallel lesen

Diese Eigenschaft repräsentiert einen Winkel in Grad für einen Schwellenwert zwischen Gesichtsnormalen auf einem modellierten Festteil.Wenn der normale Unterschied weniger als der Wert ist, werden Normale angepasst, um den Unterschied zu glätten.Während ein Wert zwischen 30 und 70 Grad in der Regel ein gutes Ergebnis erzielt, werden Werte zwischen 90 und 180 nicht empfohlen, da sie einen "Schatteneffekt" auf Gewerkschaften mit scharfen Kanten verursachen können.

Beachte, dass die Glättung die Normale zwischen verschiedenen Materialien oder verschiedenen Farben nicht beeinflusst.

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

Schreibgeschützt
Nicht repliziert
Parallel lesen

Die Anzahl der Polygone in diesem Modell.

UsePartColor

Parallel lesen

Legt fest, ob die PartOperation mit den BasePart.Color oder BasePart.BrickColor Eigenschaften neu gefärbt werden kann.Wenn wahr, wird die gesamte Union wie per Color oder BrickColor gefärbt.Wenn falsch, behalten die Teile in der Union ihre ursprünglichen Farben vor der Ausführung der Zwiebeloperation.

Methoden

SubstituteGeometry

()

Substituiert die Geometrie dieser PartOperation mit der Geometrie eines anderen PartOperation.Dies erleichtert es, die Geometrie einer soliden Modellierungsoperation wie UnionAsync() , SubtractAsync() oder IntersectAsync() zu nutzen, aber Eigenschaften, Attribute, Attribute und Kinder der Hauptteile wie Attachments , Constraints oder ParticleEmitters zu erhalten, aber leichte Objekte, Aufkleber und mehr.Dieser Ansatz umgeht auch das mögliche "Flimmern", das bestehende Original PartOperation durch ein anderes zu ersetzen.

Beachte, dass, wenn du diese Methode auf einem PartOperation mit Kind Attachments oder Constraints aufrufst, du die betroffenen Instanzen mit CalculateConstraintsToPreserve() berechnen solltest, dann diejenigen, deren empfohlener Elternteil nil ist.

Parameter

source: Instance

Die PartOperation, deren Geometrie die Geometrie dieser PartOperation ersetzen wird.

Standardwert: ""

Rückgaben

()

Code-Beispiele

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.

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

Ereignisse