2D-Pfade

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

Die Path2D, zusammen mit ihren API-Methoden und Eigenschaften, lässt dich 2D-Splines und 2D-gebogene Linien implementieren, die für UI-Effekte wie Pfad-basierte Animationen und Grafikbearbeiter nützlich sind.

Erstelle einen 2D-Pfad

Um ein Path2D auf den Bildschirm oder ein In-Experience-Objekt hinzuzufügen:

  1. In dem Explorer-Fenster füge eine Path2D unter einem sichtbaren ScreenGui oder SurfaceGui (es muss kein direktes Kind sein).

    Path2D instance parented to a ScreenGui in the Explorer hierarchy.
  2. Wählen Sie das neue Path2D aus, um das In-Viewport-Tooling-Widget zu enthüllen. Standardmäßig wird das Werkzeug Punkt hinzufügen ausgewählt.

    Add Point tool indicated in the 2D path editor widget.
  3. Beginne, auf den Bildschirm zu klicken, um eine Reihe von Steuerelementen hinzuzufügen, um einen Weg zu bilden.Der ursprüngliche Weg wird wahrscheinlich ungenau sein, aber du kannst die Position jedes Kontrollpunkts später feinabstimmen.

    Diagram illustrating an example path created using the Add Point tool to connect a series of points.
  4. Wenn du fertig bist, klicke auf die Schaltfläche Fertig des Widgets oder drücke Enter.

Kontrollpunkte modifizieren

Mit einem Path2D ausgewählt in der Explorer Hierarchie, können Sie seine einzelnen Kontrollpunkte sowie seine Tangente modifizieren.

Punkte verschieben

Um einen einzelnen Kontrollpunkt auf einem Pfad zu verschieben, aktiviere das Werkzeug Auswählen () und ziehe es dann an eine neue Position.

Select tool indicated in the 2D path editor widget. Diagram illustrating how a path control point is moved to a new position by clicking and dragging with the Select tool enabled.

Für eine sehr spezifische Positionierung wählen Sie den Kontrollpunkt aus und legen dann im Eigenschaften-Fenster eine neue Position für das Eigenschaftselement des Punkts fest ( ).

SelectedControlPointData property of a Path2D instance indicated in the Properties window.

Beachten Sie, dass die Position eines Punkts nicht absolut ist, sondern relativ zum Eltern-Container des Weges.Vergleichen Sie zum Beispiel einen Kontrollpunkt 30% von links und 20% von oben für einen Weg innerhalb eines ScreenGui , gegenüber einem identischen Weg, der in einer Frame oberen rechten Ecke des ScreenGui platziert wurde.

Diagram illustrating how the positions of path control points are relative to their parent container.

Punkte hinzufügen

Neue Kontrollpunkte können entweder zwischen zwei bestehenden Punkten oder von einem Endpunkt aus mit dem Werkzeug "Punkt hinzufügen" () hinzugefügt werden.

Add Point tool indicated in the 2D path editor widget.
Diagram illustrating how a control point is added between two existing points using the Add Point tool.
Überfahren Sie irgendwo auf dem Weg und klicken Sie, um einen Kontrollpunkt zwischen zwei vorhandenen Punkten hinzuzufügen
Diagram illustrating how a control point is added to the end of a path using the Add Point tool.
Klicken Sie auf einen Endpunkt und klicken Sie dann erneut, um einen Kontrollpunkt von diesem Ende hinzuzufügen

Punkte löschen

Um einen Kontrollpunkt zu löschen, bewegen Sie den Mauszeiger darüber und klicken Sie mit der rechten Maustaste darauf, dann wählen Sie Punkt löschen aus dem Kontextmenü.

Diagram illustrating how a path control point is deleted by right-clicking it and selecting Delete Point.

Kontrollpunkt-Tangente

Kontrollpunkt Tangente lässt dich Kurven auf einem Weg erstellen und anpassen.

Diagram illustrating a curved path with several tangent control points.

Tangente hinzufügen

Um Tangente zu jedem Kontrollpunkt hinzuzufügen, der bereits keine Tangente hat:

  1. Aktiviere das Tangente hinzufügen -Werkzeug im Tooling-Widget.

    Add Tangent tool indicated in the 2D path editor widget.
  2. Bewegen Sie den Mauszeiger über den gewünschten Kontrollpunkt, dann klicken Sie, um zwei gespiegelte Tangente(n) hinzuzufügen (optional ziehen Sie nach dem Klicken, um die neuen Tangenten anzupassen).

    Diagram illustrating how a path control point with tangents is created with the Add Tangent tool.

Tangente anpassen

Um vorhandene Tangente für einen einzelnen Kontrollpunkt anzupassen:

  1. Aktivieren Sie das Auswählen -Werkzeug (V).

    Select tool indicated in the 2D path editor widget.
  2. Bewegen Sie den Mauszeiger über einen Tangentenmarkierer (nicht über den Kontrollpunkt), dann klicken und ziehen Sie ihn in eine neue Position.Wenn die Tangente gespiegelt wird, bewegt sich der paarige Tangentenpunkt im Einklang.

    Diagram illustrating how the tangents of a control point are adjusted with the Select tool enabled.

Um eine bestimmte UDim2-Position manuell für eine Tangente festzulegen:

  1. Aktivieren Sie das Auswählen -Werkzeug ( V ) und wählen Sie den Kontrollpunkt aus.Erweitere im Eigenschaften-Fenster das Feld SelectedControlPointData um die LeftTangent und RightTangent Eigenschaften freizulegen.

    LeftTangent and RightTangent properties of a Path2D control point indicated in the Properties window.
  2. Stelle die Position für und/oder fest. Beachte, dass dies das gespiegelte Verhalten der Tangente bricht.

Tangente löschen

Um beide Tangente aus einem Kontrollpunkt zu löschen, bewegen Sie den Mauszeiger und klicken Sie mit der rechten Maustaste auf diesen Punkt, dann wählen Sie Tangente löschen aus dem Kontextmenü.

Diagram illustrating how both tangents of a control point are cleared by right-clicking it and selecting Clear Tangents.

Um nur einen der Tangente (links oder rechts) zu löschen, bewegen Sie den Mauszeiger darüber und klicken mit der rechten Maustaste auf den Marker der Tangente, dann wählen Sie Tangente löschen .

Diagram illustrating how one tangent of a control point is deleted by right-clicking it and selecting Delete Tangent.

Zerbrechen und Spiegeln

Standardmäßig spiegeln sich die Tangente gegenseitig. Wenn du ziehst, um einen Tangentenmarkierer anzupassen, bewegt sich der paarige Tangentenpunkt im Einklang.

Diagram illustrating how the tangents of a control point are adjusted with the Select tool enabled.

Um die Tangente zu "brechen", damit jede unabhängig von der anderen bewegt werden kann, bewegen Sie den Mauszeiger und klicken Sie mit der rechten Maustaste auf den dazugehörigen Kontrollpunkt, wählen Sie dann Tangente brechen aus dem Kontextmenü.Sobald gebrochen, kannst du jeden Tangentenmarkierer ohne Auswirkung auf den anderen bewegen.

Diagram illustrating how the tangents of a control point are broken by right-clicking it and selecting Break Tangents.

Weg visuelle Eigenschaften

Du kannst das visuelle Erscheinungsbild eines Path2D mit den folgenden Eigenschaften anpassen:

EigenschaftBeschreibung
Color3Legt die Farbe der Pfadlinie fest.
ThicknessLegt die Dicke der Pfadlinie in Pixeln fest.
VisibleMachen Sie den Pfad sichtbar oder nicht in beiden Bearbeitung und Laufzeit.
ZIndexReihenfolge, in der ein Weg in Bezug auf andere GUIs dargestellt wird.
Diagram illustrating a path with Thickness of 2 and Color3 of (125, 125, 125).

Dicke = 2Color3 = (125, 125, 125)
>

Diagram illustrating a path with Thickness of 10 and Color3 of (225, 0, 50).

Dicke = 10Color3 = (225, 0, 50)
>

Diagram illustrating a path layered in front of another using the ZIndex property.

ZIndex-Auflage
>

Scripting

Skripte sind nützlich für mehrere wegbezogene Workflows.Die folgenden Beispiele verwenden Methoden wie GetControlPoints(), die eine Tabelle von Path2DControlPoints und GetPositionOnCurveArcLength() zurückgibt, die die UDim2 Position an einem bestimmten t Wert entlang der Kerbverzahnung zurückgibt.

UI-Objekte auf dem Pfad anordnen

local parent = script.Parent
local path = parent:FindFirstChildWhichIsA("Path2D")
local function arrangeChildren()
local segmentCount = #path:GetControlPoints()
local objectsToArrange = {}
for _, child in parent:GetChildren() do
if child:IsA("GuiObject") then
table.insert(objectsToArrange, child)
end
end
for idx, child in objectsToArrange do
local t = idx / (#objectsToArrange + 1)
child.Position = path:GetPositionOnCurveArcLength(t)
end
end
-- Stelle zuerst Kind-UI-Objekte auf dem Pfad an
arrangeChildren()
-- Höre auf, dass Kinder hinzugefügt/entfernt werden, um die Anordnung anzupassen
parent.ChildAdded:Connect(arrangeChildren)
parent.ChildRemoved:Connect(arrangeChildren)
Animierte UI-Objekt entlang des Pfad

local Tweenservice = game:GetService("TweenService")
local parent = script.Parent
local path = parent:FindFirstChildWhichIsA("Path2D")
local objectToAnimate = parent:FindFirstChildWhichIsA("GuiObject")
local TWEEN_DURATION = 4
local TWEEN_EASING_STYLE = Enum.EasingStyle.Cubic
local TWEEN_EASING_DIRECTION = Enum.EasingDirection.InOut
local pathSampleValue = Instance.new("NumberValue")
local tweenInfo = TweenInfo.new(TWEEN_DURATION, TWEEN_EASING_STYLE, TWEEN_EASING_DIRECTION, 0, true, 2)
local tween = Tweenservice:Create(pathSampleValue, tweenInfo, {Value = 1})
local function onSampleValueChanged()
objectToAnimate.Position = path:GetPositionOnCurveArcLength(pathSampleValue.Value)
end
pathSampleValue.Changed:Connect(onSampleValueChanged)
tween:Play()