PartOperation

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Abstrakcyjna klasa, od której wszystkie części oparte na modelowaniu solidów dziedziczą.

Podsumowanie

Właściwości

  • Zabezpieczenia dodatku plug-in
    Odczyt równoległy

    Poziom szczegółowości używany do renderowania solidnej części modelowanej.

  • Zabezpieczenia dodatku plug-in
    Odczyt równoległy

    Kąt w stopniach, który wpływa na gładkie zacienienie części modelowanej.

  • Tylko do odczytu
    Bez replikacji
    Odczyt równoległy

    Liczba pól w tym modelu solidu.

  • Odczyt równoległy

    Ustawia, czy PartOperation może zostać ponownie skolorowane za pomocą dziedziczonej właściwości koloru.

Właściwości odziedziczeni z: TriangleMeshPart
  • Bez replikacji
    Zabezpieczenia dodatku plug-in
    Odczyt równoległy

    Określa poziom szczegółowości, do którego fizyka części będzie przestrzegać jej siatki.

  • Bez replikacji
    Zabezpieczenia dodatku plug-in
    Odczyt równoległy

    Określa reprezentację geometryczną używaną do obliczania sił i momentów aerodynamicznych.

  • Tylko do odczytu
    Bez replikacji
    Odczyt równoległy
Właściwości odziedziczeni z: BasePartWłaściwości odziedziczeni z: PVInstance
  • Bez replikacji
    Brak możliwości dodawania do skryptu
    Odczyt równoległy
  • Bez replikacji
    Brak możliwości dodawania do skryptu
    Odczyt równoległy

Metody

Metody odziedziczeni z: BasePartMetody odziedziczeni z: PVInstance

Zdarzenia

Zdarzenia odziedziczeni z: BasePart

Właściwości

RenderFidelity

Zabezpieczenia dodatku plug-in
Odczyt równoległy

Właściwość ta określa poziom szczegółowości, na którym zostanie wyświetlona modelowana część.Można go ustawić na możliwe wartości enum Enum.RenderFidelity.

Domyślną wartością jest Automatic , co oznacza, że szczegóły części są oparte na jej odległości od kamery, jak opisano w następującej tabeli.


<th>Wierność renderowania</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mniej niż 250 kołków</td>
<td>Najwyższy</td>
</tr>
<tr>
<td>250-500 szpilki</td>
<td>Średni</td>
</tr>
<tr>
<td>500 lub więcej szpil</td>
<td>Najniższy</td>
</tr>
</tbody>
Odległość od kamery

SmoothingAngle

Zabezpieczenia dodatku plug-in
Odczyt równoległy

Właściwość ta reprezentuje kąt w stopniach dla wartości progu między płaszczyznami normalnymi na części modelowanej w całości.Jeśli różnica normalna jest mniejsza niż wartość, normy zostaną dostosowane, aby wygładzić różnicę.Podczas gdy wartość pomiędzy 30 a 70 stopniami zwykle daje dobry wynik, wartości pomiędzy 90 a 180 nie są zalecane, ponieważ mogą powodować efekt "obserwacji" na związkach z ostrymi krawędziami.

Zauważ, że wygładzanie nie wpływa na normalne między różnymi materiałami lub różnymi kolorami.

Solid modeled part with SmoothingAngle of 0

<figcaption><code>Klasa.PartOperation.SmoothingAngle|SmoothingAngle</code> = 0</figcaption>
Solid modeled part with SmoothingAngle of 50

<figcaption><code>Klasa.PartOperation.SmoothingAngle|SmoothingAngle</code> = 50</figcaption>

TriangleCount

Tylko do odczytu
Bez replikacji
Odczyt równoległy

Liczba pól w tym modelu solidu.

UsePartColor

Odczyt równoległy

Ustawia, czy PartOperation może zostać ponownie skolorowane za pomocą właściwości BasePart.Color lub BasePart.BrickColor.Gdy prawda, cała unia będzie kolorowana zgodnie z Color lub BrickColor.Gdy jest fałszywy, części w unii zachowają swoje oryginalne kolory przed wykonaniem operacji cebuli.

Metody

SubstituteGeometry

()

Zastępuje geometrię tej PartOperation geometrią innej PartOperation .Ułatwia to wykorzystanie geometrii operacji modelowania solidów, takich jak UnionAsync() , SubtractAsync() lub IntersectAsync() , ale zachowanie właściwości, atrybutów, tagów i dzieci głównej części, takich jak Attachments , Constraints , ParticleEmitters , lekkie obiekty, nadruki i więcej.Ta metoda unika również potencjalnego "flickera" całkowitego zastąpienia oryginalnego PartOperation innym.

Zauważ, że jeśli wzywasz tę metodę na PartOperation z dzieckiem Attachments lub Constraints , powinieneś obliczyć dotknięte instancje za pomocą CalculateConstraintsToPreserve() , a następnie upuścić te, których zalecany rodzic jest nil .

Parametry

source: Instance

The PartOperation którego geometria zastąpi geometrię tego PartOperation .

Wartość domyślna: ""

Zwroty

()

Przykłady kodu

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

Zdarzenia