PartOperation

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Una clase abstracta de la que todas las partes se basan en modelado sólido heredan.

Resumen

Propiedades

Propiedades heredados de TriangleMeshPartPropiedades heredados de BasePartPropiedades heredados de PVInstance

Métodos

Métodos heredados de BasePartMétodos heredados de PVInstance

Eventos

Eventos heredados de BasePart

Propiedades

RenderFidelity

Seguridad del plugin
Leer paralelo

Esta propiedad determina el nivel de detalle que se mostrará en la parte modelada sólida.Se puede establecer a los valores posibles del Enum.RenderFidelity enumerado.

El valor predeterminado es Automatic , lo que significa que el detalle de la parte se basa en su distancia de la cámara como se describe en la siguiente tabla.


<th>Fidelidad de renderizado</th>
</tr>
</thead>
<tbody>
<tr>
<td>Menos de 250 tacos</td>
<td>Más alto</td>
</tr>
<tr>
<td>250-500 tacos</td>
<td>Medio</td>
</tr>
<tr>
<td>500 o más tacos</td>
<td>Más bajo</td>
</tr>
</tbody>
Distancia desde la cámara

SmoothingAngle

Seguridad del plugin
Leer paralelo

Esta propiedad representa un ángulo en grados para un valor de umbral entre normales de cara en una parte modelada sólida.Si la diferencia normal es menor que el valor, las normales se ajustarán para suavizar la diferencia.Si bien un valor entre 30 y 70 grados generalmente produce un buen resultado, los valores entre 90 y 180 no se recomiendan ya que pueden causar un efecto de "sombreamiento" en los sindicatos con bordes afilados.

Tenga en cuenta que la suavización no afecta a los normales entre diferentes materiales o colores diferentes.

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

Solo lectura
No replicado
Leer paralelo

El número de polígonos en este aplicación de modeladosólido.

UsePartColor

Leer paralelo

Establece si el PartOperation puede ser recolorado usando las propiedades BasePart.Color o BasePart.BrickColor.Cuando sea verdad, toda la unión se coloreará según Color o BrickColor .Cuando es falso, las partes de la unión mantendrán sus colores originales antes de que se realizara la operación de cebolla.

Métodos

SubstituteGeometry

()

Sustituye la geometría de esta PartOperation con la geometría de otra PartOperation.Esto facilita el uso de la geometría de una operación de modelado sólido como UnionAsync() , SubtractAsync() , o IntersectAsync() pero manteniendo las propiedades, atributos, etiquetas y hijos de la parte principal como Attachments , Constraints , ParticleEmitters , objetos ligeros, decoraciones y más.Este enfoque también evita el potencial "parpadeo" de reemplazar completamente el original PartOperation con otro.

Tenga en cuenta que si está llamando a este método en un PartOperation con hijo Attachments o Constraints , debe calcular las instancias afectadas con CalculateConstraintsToPreserve() , luego dejar caer aquellas cuyo padre recomendado sea nil .

Parámetros

source: Instance

El PartOperation cuya geometría sustituirá la geometría de este PartOperation .

Valor predeterminado: ""

Devuelve

()

Muestras de código

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

Eventos