Con đường 2D

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Cú ví dụ / trường hợptên Path2D đi kèm với các phương pháp và thuộc tính API của nó cho phép bạn tích hợp các đường cong và đường cong 2D, hữu ích cho các hiệu ứng UI như hoạt họa dựa trên con đường và chỉnh sửa người dùng.

Tạo một con đường 2D

Để thêm một Path2D vào màn hình hoặc một đối tượng trong kinh nghiệm:

  1. Trong cửa sổ Explorer, hãy nhúc một Path2D instance dưới một Class.ScreenGui hoặc Class.SurfaceGui (nó không cần phải là một con cháu trực tiếp).

    Path2D instance parented to a ScreenGui in the Explorer hierarchy.
  2. Chọn mới Path2D để tiết lộ các thành phần công cụ trong cảnh nhìn. Bởi mặc định, công cụ Thêm Điểm được chọn.

    Add Point tool indicated in the 2D path editor widget.
  3. Bắt đầu nhấp vào màn hình để thêm một loạt các điểm điều khiển </điều khiển</điều khiển</điều khiển> để tạo thành một con đường. Con đường ban đầu có thể không chính xác nhưng bạn có thể tùy chỉnh vị trí của bất kỳ điểm điều khiển nào sau

    Diagram illustrating an example path created using the Add Point tool to connect a series of points.
  4. Khi hoàn thành, nhấp vào nút Hoàn thành của widget hoặc nhấn Nhập.

Điều chỉnh Điểm điều khiển

Với một Path2D được chọn trong lớp Explorer , bạn có thể điều chỉnh các điểm kiểm soát của mình một cách riêng lẻ và các tangents của nó.

Điểm di chuyển

Để di chuyển một điểm kiểm soát cụ thể trên một con đường, hãy bật công cụ Chọn ( V ) và sau đó nhấp chuột và kéo nó đến vị trí mới.

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.

Đối với vị trí cụ thể, hãy chọn điểu khiển và sau đó, trong cửa sổ Thuộc tính, hãy cài đặt một vị trí mới cho vị trí SelectedControlPointData của thuộc tính UDim2 .

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

Lưu ý rằng vị trí của một điểm không phải là tuyệt đối, nhưng là tương đối đối với container con của con đường. Ví dụ, so sánh một điểm kiểm tra 30% bên trái và 20% b

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

Thêm Điểm

Các điểm điều khiển mới có thể được thêm vào một Path2D giữa hai điểm hiện tại hoặc từ một điểm cuối bằng cách sử dụng công cụ Thêm Điểm ( P ).

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.
Di chuột ở bất kì nơi nào trên con đường và nhấp để thêm điểu khiển giữa hai điểm hiện tại.
Diagram illustrating how a control point is added to the end of a path using the Add Point tool.
Nhấp vào một điểm cuối và nhấp một lần nữa để thêm một điểm điều khiển từ cuối cùng đó

Xóa Điểm

Để xóa điểu khiển, hover over and right click it, then select Delete Point from the contextual popup menu.

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

Điều khiển điểm tangents

Điểu khiển tangents cho phép bạn tạo và điều chỉnh các con đường trên một con đường.

Diagram illustrating a curved path with several tangent control points.

Thêm tangents

Để thêm tangents đến bất kỳ điểm điều khiển nào mà không có tangents:

  1. Kích hoạt công cụ Thêm vào Tangent trong trang bị công cụ.

    Add Tangent tool indicated in the 2D path editor widget.
  2. Hover over the desired control point, then click to add two mirrored tangents (optionally drag after clicking to ajust the new tangents).

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

Điều chỉnh tangents

Để điều chỉnh các tangents hiện tại cho một điểm điều khiển cụ thể:

  1. Kích hoạt công cụ Chọn ( V ).

    Select tool indicated in the 2D path editor widget.
  2. Chuột qua một thẻ tang (không phải điểm điều khiển), sau đó nhấp chuột và kéo nó đến vị trí mới. Nếu các tangents được gương bóng, điểm tang cặp sẽ di chuyển trong unison.

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

Để thiết lập một vị trí cụ thể UDim2 cho một tangent:

  1. Mở công cụ Chọn ( V ) và chọn điểm kiểm tra. Trong cửa sổ Thông tin cấu hình, mở trang 1> Class.Path2D.SelectedControlPointData|SelectedControlPointData1> đ

    LeftTangent and RightTangent properties of a Path2D control point indicated in the Properties window.
  2. Đặt vị trí cho LeftTangent và/hoặc RightTangent . Ghi chú rằng điều này sẽ phá vỡ hành vi mirrored của các tangents .

Xóa tangents

Để xóa cả hai tangents từ một điểm điều khiển, hover over và right-click điểm đó, then select Xóa tangents from the contextual popup menu.

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

Để xóa chỉ một trong những tangents (bên trái hoặc bên phải), hover over and right-click vào và nhấp chuột vào người đóng dấu của tangents đó, then select Delete Tangent .

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

Phá vỡ và sao chép

Mặc định, tangents phản chiếu nhau. Khi bạn kéo để điều chỉnh một người bộ định tangent, điểm tangent đôi sẽ di chuyển theo cùng một chuỗi.

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

Để "phá vỡ" các tangents để mỗi người có thể được di chuyển độc lập với nhau, hover over and right-click the associat control point, then select Break Tangents từ menu ng上下文. Sau khi bị "phá vỡ", bạn có thể di chuyển mỗi thẻ tangents mà không ảnh hưởng đến người khác.

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

Thuộc tính Visuals Đường

Bạn có thể tùy chỉnh diện mạo thị giác của một Path2D với các thuộc tính sau đây:

Thuộc tínhMô tả
Color3Đặt màu của dòng con đường.
ThicknessĐịnh mật độ của dòng đường, bằng pixel.
VisibleLàm cho con đường có thể nhìn thấy hoặc không ở cả hai chỉnh sửa và thời gian chạy.
ZIndexĐặt hướng mà một con đường hiển thị so với các GUI khác.
Diagram illustrating a path with Thickness of 2 and Color3 of (125, 125, 125).
Độ dày = 2Color3 = (125, 125, 125)
Diagram illustrating a path with Thickness of 10 and Color3 of (225, 0, 50).
Độ dày = 10Color3 = (225, 0, 50)
Diagram illustrating a path layered in front of another using the ZIndex property.
Lớp ZIndex

Tạo mục đường dẫn

Lập trình là hữu ích cho một số workflow liên quan đến con đường. Các ví dụ sau đây sử dụng các mét phương tiện như Class.Path2D:GetControlPoints()|

Sắp xếp Objet UI trên Path

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
-- Đầu tiên sắp xếp các đối tượng UI con trên con đường
arrangeChildren()
-- Lắng nghe trẻ em được thêm/xóa để điều chỉnh bố trí
parent.ChildAdded:Connect(arrangeChildren)
parent.ChildRemoved:Connect(arrangeChildren)
Anime UI Object Ngang Đường

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