2D Yolları

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Class.Path2D durum, API yöntemleri ve özellikleriyle birlikte, yol tabanlı animasyonlar ve grafik düzenleyiciler gibi UI etkileri için kullanışlı 2D çizgileri ve 2D kıvrımlı çizgileri uygulayabilirsiniz.

2D Yol Oluşturulması

Ekrana bir Path2D eklemek veya bir deneyim objesine bir içerik katmak için:

  1. In the Explorer window, insert a Path2D instance under a visible ScreenGui or 1> Class.SurfaceGui1> (it does not need to be a direct child).

    Path2D instance parented to a ScreenGui in the Explorer hierarchy.
  2. Görüntü ortasında araçları gizlemek için yeni Path2D seçin.Varsayılan olarak, Nokta Ekleme aleti seçilir.

    Add Point tool indicated in the 2D path editor widget.
  3. Bir seri kontrol noktası eklemek için ekranda tıklamaya başlayın. Başlangıç ​​yolu muhtemelen yanlış olacak, ancak sonra herhangi bir kontrol noktasının konumunu inceleyebilirsiniz.

    Diagram illustrating an example path created using the Add Point tool to connect a series of points.
  4. Bittiğinde, widget'in Bitti butonuna tıklayın veya Giriş'e basın.

Kontrol Noktalarını Değiştirme

Explorer hierarşisinde seçilen bir Class.Path2D ile, kontrol noktalarını ve eğilimi tangents ile değiştirebilirsiniz.

Hareketli Noktalar

Bir yoldaki birzelere kontrol noktalarını hareket ettirmek için, Seç aletini etkinleştirin (V ) ve sonra yeni bir konuma tıklayın ve kaydırın.

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.

Çok spesifik bir konum için, kontrol noktasını seçin ve sonra, Özellikler penceresinde, noktanın SelectedControlPointData özelliğine yeni bir konum ayarlayın (UDim2).

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

Not: Bir noksanın pozisyonu mutlak değil, sadece relatif olarak yolun ebeveyn kutusuna kadar. Örneğin, bir kontrol noktasının solundan 30% gittiğini veya ScreenGui bir yol için 20% gittiğ

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

Puanlar Ekleme

Yeni kontrol noktaları, iki mevcut nokta arasında veya Path2D araç kullanılarak her iki noktanın da arasında eklenebilir.

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.
Yolun üstünde herhangi bir yere fareyi taşı ve iki mevcut nokta arasında bir kontrol noktası eklemek için tıkla.
Diagram illustrating how a control point is added to the end of a path using the Add Point tool.
Bir son noktasına tıklayın ve sonra bu son noktanın kontrol noktasını eklemek için tekrar tıklayın

Noktaları Silme

Bir kontrol noktasını silmek için, onu sağ-tıklayın ve açık alanı silmek için Noktayı Sil seçeneğini seçin.

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

Kontrol Noktası Tangentleri

Kontrol noktası tangents yol üzerinde kurve oluşturmanızı ve ayarlanmasını sağlar.

Diagram illustrating a curved path with several tangent control points.

Tangentler Ekleme

Zaten tangent'ları olmayan herhangi bir kontrol noktasına tangent eklemek için:

  1. Araçlar widget'ındaki Eklemek Tangent aletini etkinleştirin.

    Add Tangent tool indicated in the 2D path editor widget.
  2. İstediğiniz kontrol noktasına sağa kaydırın, sonra iki tane eklemek için tıklayın (isteğe bağlı olarak tıkladıktan sonra yeni tangentleri ayarlamak için kaydırın).

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

Tangent Adjusting

Bir kişisel kontrol noktası için mevcut tangentleri ayarlamak:

  1. Seç araç etkinleştirmeyi ( V )

    Select tool indicated in the 2D path editor widget.
  2. Bir tangent işaretleyici (kontrol noktası değil) üzerinde fareyi geçirin ve ardından yeni bir pozisyona tıklayın ve kaydırın. Eğer tangentler mirrored ise, eşleştirilen tangent noktası hareket edecektir.

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

Bir tangente için özel bir UDim2 pozisyonunu manuel olarak ayarlamak için:

  1. Enable the Seç tool ( V ) and select the control point. In the Özellikler window, expand the 1> Class.Path2D.SelectedControlPointData|SelectedControlPointData1> field to expose the 4> Datatype.Path2DControlPoint.LeftTangent|LeftTang

    LeftTangent and RightTangent properties of a Path2D control point indicated in the Properties window.
  2. Datatype.Path2DControlPoint.LeftTangent|LeftTangent ve/veya RightTangent ile ilgili pozisyonu ayarlar. Tangentlerin eşit davranışını kırırırırır.

Tangentleri Silme

Bir kontrol noktasındaki her iki tangent'i de silmek için, o noktayı sağ-tıklayın ve konteyner popup menüsünden Tangentleri Temizle seçin.

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

Sadece tangentlerden birini silmek (gitti veya sağ) için, tangentin işaretini fareyi üzerine getirin ve Tangent'i Sil seçin.

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

Kırma ve Yansıtma

Varsayılan olarak, tangentler birbirlerine ayna olur. Bir tangent işaretleyicisini sürükle khi, eşleştirici olarak kalan tangent noktası hareket eder.

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

Her birinin diğerinden bağımsız olarak hareket edebilmesi için tangentleri "bozabilmek" için, ilişkili kontrol noktasının üzerine sağ-tıklayın ve Tangentleri Boz seçeneğini seçin. Kırıldıktan sonra, diğerlerine etki etmeden her bir tangent marcını hareket ettirebilirsiniz.

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

Yol Görsel Özellikleri

Class.Path2D ile görünümünü özelleştirebilirsiniz:

ÖzellikAçıklama
Color3Yol çizgisinin rengini ayarlar.
ThicknessYol çizgisinin kalınlığını, piksel olarak ayarlar.
VisibleYolunu herhangi bir düzenleme veya çalışma zamanında görünür veya görünmez hale getirin.
ZIndexDiğer GUI'lara göre bir yolun rendelenmesini sıralar.
Diagram illustrating a path with Thickness of 2 and Color3 of (125, 125, 125).
Kalınlık = 2Renk3 = (125, 125, 125)
Diagram illustrating a path with Thickness of 10 and Color3 of (225, 0, 50).
Kalınlık = 10Renk3 = (225, 0, 50)
Diagram illustrating a path layered in front of another using the ZIndex property.
ZIndex Yüksekliği

Yol Kodlama

Kodlama birkaç yol iş akışı için yararlıdır. Aşağıdaki örnekler, GetControlPoints() gibi yöntemleri kullanır, which return a table of <

Yol Boyunca UI Objelerini Düzenle

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
-- Başlangıçta yol boyunca çocuk UI nesnelerini düzenleyin
arrangeChildren()
-- Düzeni ayarlamak için çocukların eklenmesini/kaldırılmasını dinleyin
parent.ChildAdded:Connect(arrangeChildren)
parent.ChildRemoved:Connect(arrangeChildren)
Yol boyunca UI Objelerini Animasyon

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()