PartOperation

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Una classe astratta da cui tutte le parti basate su modellazione solida ereditano.

Sommario

Proprietà

  • Sicurezza Plugin
    Lettura Parallela

    Il livello di dettaglio utilizzato per rendere la parte modellata solida.

  • Sicurezza Plugin
    Lettura Parallela

    Un angolo in gradi che influisce sulla lussuosa ombreggiatura di una parte modellata solida.

  • Sola Lettura
    Non Replicato
    Lettura Parallela

    Il numero di poligoni in questo modello solido.

  • Lettura Parallela

    Imposta se il PartOperation può essere ricolorato utilizzando le proprietà di colore ereditate.

Proprietà provenienti da TriangleMeshPartProprietà provenienti da BasePartProprietà provenienti da PVInstance

Metodi

Metodi provenienti da BasePartMetodi provenienti da PVInstance

Eventi

Eventi provenienti da BasePart

Proprietà

RenderFidelity

Sicurezza Plugin
Lettura Parallela

Questa proprietà determina il livello di dettaglio in cui verrà mostrata la parte modellata solida.Può essere impostato ai possibili valori dell'enum Enum.RenderFidelity .

Il valore predefinito è Automatic , il che significa che il dettaglio della parte è basato sulla sua distanza dalla fotocamera come descritto nella seguente tabella.


<th>Rendere la fedeltà</th>
</tr>
</thead>
<tbody>
<tr>
<td>Meno di 250 borchie</td>
<td>Più alto</td>
</tr>
<tr>
<td>250-500 metri</td>
<td>Mediamente</td>
</tr>
<tr>
<td>500 o più borchie</td>
<td>Minore</td>
</tr>
</tbody>
Distanza dalla telecamera

SmoothingAngle

Sicurezza Plugin
Lettura Parallela

Questa proprietà rappresenta un angolo in gradi per un valore di soglia tra le normali facciali su una parte modellata solida.Se la differenza normale è inferiore al valore, le normali verranno aggiustate per attenuare la differenza.Mentre un valore tra 30 e 70 gradi di solito produce un buon Risultato, i valori tra 90 e 180 non sono raccomandati poiché possono causare un effetto "ombreggiamento" sui sindacati con bordi affilati.

Nota che la lisciatura non influisce sui normali tra diversi materiali o colori diversi.

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

Sola Lettura
Non Replicato
Lettura Parallela

Il numero di poligoni in questo modello solido.

UsePartColor

Lettura Parallela

Imposta se il PartOperation può essere ricolorato utilizzando le proprietà BasePart.Color o BasePart.BrickColor.Quando è vero, l'intera unione sarà colorata come per Color o BrickColor .Quando è falso, le parti nell'unione manterranno i loro colori originali prima che venisse eseguita l'operazione di cipolla.

Metodi

SubstituteGeometry

()

Sostituisce la geometria di questo PartOperation con la geometria di un altro PartOperation .Questo rende più facile utilizzare la geometria di un'operazione di modellazione solida come UnionAsync() , SubtractAsync() , o IntersectAsync() ma mantenere le proprietà, gli attributi, i tag e i figli della parte principale come Attachments , Constraints , ParticleEmitters , oggetti leggeri, decorazioni e altro ancora.Questo approccio evita anche il potenziale "flicker" di sostituire completamente l'originale PartOperation con un altro.

Nota che se stai chiamando questo metodo su un PartOperation con figlio Attachments o Constraints , dovresti calcolare le istanze interessate con CalculateConstraintsToPreserve() , quindi lasciare quelle il cui genitore raccomandato è nil .

Parametri

source: Instance

Il PartOperation la cui geometria sostituirà la geometria di questo PartOperation .

Valore predefinito: ""

Restituzioni

()

Campioni di codice

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

Eventi