kejadianPath2D , bersama dengan metode dan propinya API, memungkinkan Anda untuk menerapkan spline 2D dan garis 2D yang dibungkuk, berguna untuk efek UI seperti animasi jalan dan editor grafis.
Membuat Jalur2D
Untuk menambahkan Path2D ke layar atau objek dalam pengalaman:
Pilih yang baru Path2D untuk mengungkapkan alat perangkat luncur dalam pandangan. Secara default, alat Tambahkan Titik dipilih.
Mulai klik di layar untuk menambahkan beberapa poin kontrol untuk membentuk jalan. Jalan awal mungkin tidak tepat tetapi Anda dapat menyempurnakan posisi setiap poin kontrol nanti.
Setelah selesai, klik tombol Selesai widget atau tekan Masukkan .
Mengubah Titik Kontrol
Dengan memilih Path2D di hierarchi Explorer, Anda dapat mengubah poin kontrol individualnya serta tangens mereka.
Pindahkan Titik
Untuk menindakkan titik kontrol individual di jalan, aktifkan alat Pilih ( V ) dan kemudian klik dan seret ke lokasi baru.
Untuk posisi yang sangat spesifik, pilih titik kontrol dan kemudian, dalam jendela Properties, atur posisi baru untuk propperti SelectedControlPointData ( UDim2 ).
Catat bahwa posisi titik bukanlah absolut, tetapi lebih dari relatif ke wadah orang tua rute. Misalnya, bandingkan titik kontrol 30% dari kiri dan 20% dari atas untuk rute di dalam ScreenGui , versus patut identik yang ditempatkan di sudut atas kiri dari <
Menambahkan Titik
Poin kontrol baru dapat ditambahkan ke Path2D antara dua poin yang ada atau dari salah satu ujung dengan menggunakan alat Tambahkan Poin ( P).
Menghapus Titik
Untuk menghapus titik kontrol, hover over and right click it, then select Delete Point dari menu popup konteks.
Mengontrol Titik Tangens
Poin kontrol tangens memungkinkan Anda untuk menciptakan dan menyesuaikan kurva di jalan.
Menambahkan Tangents
Untuk menambahkan tangens ke setiap titik kontrol yang belum memiliki tangens:
Aktifkan alat Tambahkan Tangent di widget alat.
Menyesuaikan Tangents
Untuk menyesuaikan tangens yang ada untuk titik kontrol individual:
Aktifkan alat Pilih ( V ).
Geser over a tangent marker (not the control point), then click-and-drag it to a new position. If the tangents are mirrored, the paired tangent point will move in unison.
Untuk menetapkan posisi UDim2 tertentu untuk tangan:
Aktifkan alat Pilih ( V ) dan pilih titik kontrol. Di jendela Properti, ekspansi 1> Class.Path2D.SelectedControlPointData|SelectedControlPointData1> untuk mengekspos 4> Datatype.Path2DControl
Tetapkan posisi untuk LeftTangent dan/atau RightTangent . Catat bahwa ini akan menghancurkan perilaku cermin dari tangens.
Menghapus Tangents
Untuk menghapus kedua tangens dari titik kontrol, hover over dan right-click that point, then select Hapus Tangens dari menu popup konteks.
Untuk menghapus hanya salah satu dari tangens (kiri atau kanan), hover over dan right-click tangens Marker, then select Hapus Tangens .
Menghancurkan dan Menyamar
Secara default, tangens saling mencerminkan. Saat Anda menyeret untuk menyesuaikan satu tangens markas, titik tangens yang berpasangan akan bergerak tanpa persaingan.
Untuk "memecah" tangensi sehingga setiap orang dapat di移動 secara independen satu sama lain, hover over dan right-click pada titik kontrol yang terkait, lalu pilih Memecahkan Tangensi dari menu konteks. Setelah dipatahkan, Anda dapat menyesuaikan setiap pemecah tangensi tanpa mempengaruhi orang lain.
Properti Jalan Visual
Anda dapat menyesuaikan tampilan visual Class.Path2D dengan berbagai propperti berikut:
Properti | Deskripsi |
---|---|
Color3 | Tetapkan warna garis jalan. |
Thickness | Tetapkan ketebuhan garis jalan, dalam pixel. |
Visible | Jadikan jalan terlihat atau tidak dalam kedua edit dan runtime. |
ZIndex | Perintah dalam mana jalan setapak rendah relatif terhadap GUI lainnya. |
Skrip Jalan
Skrip berguna untuk beberapa workflow terkait jalan. Berikut adalah contoh yang menggunakan metode seperti GetControlPoints() yang mengembalikan tabel Datatype.Path2DControl
Atur Objek UI di Jalur
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
-- Awalnya atur objek UI anak di jalan
arrangeChildren()
-- Dengarkan anak-anak yang ditambahkan/dihapus untuk menyesuaikan urutan
parent.ChildAdded:Connect(arrangeChildren)
parent.ChildRemoved:Connect(arrangeChildren)
Objek UI Animasi Sepanjang Jalur
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()