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.

Ví dụ, ví dụ / trường hợp, cùng với các phương pháp và thuộc tính API của nó, cho phép bạn triển khai các spline 2D và các đường cong 2D, hữu ích cho các hiệu ứng UI như hoạt hình dựa trên con đường và trình soạn thảo đồ thị.

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 trải nghiệm:

  1. Trong cửa sổ Explorer, nhúng một ví dụ Path2D dưới một đối tượng hiển thị ScreenGui hoặc SurfaceGui (nó không cần phải là con trực tiếp).

    Path2D instance parented to a ScreenGui in the Explorer hierarchy.
  2. Chọn cái mới Path2D để tiết lộ công cụ gỡ lỗi trong cửa sổ xem. 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 điểm điều khiển để tạo ra một con đường.Con đường ban đầu có thể không chính xác nhưng bạn có thể tinh 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, hãy nhấp vào nút Hoàn thành của widget hoặc nhấn Enter .

Sửa điểm điều khiển

Với một Path2D được chọn trong cấu trúc Explorer, bạn có thể thay đổi các điểm điều khiển riêng lẻ của nó cũng như các góc cạnh của chúng.

Di chuyển điểm

Để di chuyển một điểm điều khiển cá nhân trên một con đường, bật công cụ Chọn ( ) và sau đó nhấp 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í rất cụ thể, hãy chọn điểm điều khiển và sau đó, trong cửa sổ Tính năng, đặt một vị trí mới cho thuộc tính SelectedControlPointData của điểm (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, mà là tương đối với thùng cha của con đường.Ví dụ, so sánh điểm điều khiển 30% từ bên trái và 20% từ trên cùng cho một con đường bên trong một ScreenGui , so với một con đường tương tự được đặt bên trong một Frame nằm ở góc trên bên phải của ScreenGui .

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 có hoặc từ điểm cuối cùng bằ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.

Chọn bất kỳ nơi nào trên đường dẫn và nhấp để thêm điểm điều khiển giữa hai điểm hiện có
>

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à sau đó nhấp lại để thêm một điểm điều khiển từ đó
>

Xóa điểm

Để xóa điểm điều khiển, di chuột qua và nhấp chuột phải vào nó, sau đó chọn Xóa điểm từ menu bật lên ngữ cảnh.

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

Kiểm soát điểm góc

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

Diagram illustrating a curved path with several tangent control points.

Thêm tangente

Để thêm cạnh vào bất kỳ điểm điều khiển nào chưa có cạnh:

  1. Bật công cụ Thêm phép tang trong widget công cụ.

    Add Tangent tool indicated in the 2D path editor widget.
  2. Di chuột qua điểm điều khiển mong muốn, sau đó nhấp để thêm hai đường cong phản chiếu (tùy chọn có thể kéo sau khi nhấp để điều chỉnh các đường cong mới).

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

Chỉnh lưỡi góc

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

  1. Bật công cụ Chọn ( V ).

    Select tool indicated in the 2D path editor widget.
  2. Vượt qua một điểm chạm (không phải điểm điều khiển), sau đó nhấp và kéo nó đến một vị trí mới.Nếu các góc cạnh được phản chiếu, điểm góc cạnh đôi sẽ di chuyển theo nhịp.

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

Để thiết lập bằng tay một vị trí cụ thể UDim2 cho một tangente:

  1. Bật công cụ Chọn ( V ) và chọn điểm điều khiển.Trong cửa sổ Tính năng, mở rộng trường SelectedControlPointData để tiết lộ các LeftTangentRightTangent tính năng.

    LeftTangent and RightTangent properties of a Path2D control point indicated in the Properties window.
  2. Đặt vị trí cho LeftTangent và/hoặc RightTangent. Lưu ý rằng điều này sẽ phá vỡ hành vi phản chiếu của các tangente.

Xóa tangente

Để xóa cả cạnh tròn từ điểm điều khiển, di chuột qua và nhấp chuột phải vào điểm đó, sau đó chọn Xóa cạnh tròn từ menu bật lên ngữ cảnh.

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 cạnh (bên trái hoặc bên phải), di chuột qua và nhấp chuột phải vào dấu hiệu cạnh đó, sau đó chọn Xóa cạnh .

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

Phá vỡ và phản chiếu

Mặc định, các góc cạnh phản chiếu lẫn nhau. Khi bạn kéo để điều chỉnh một thẻ góc cạnh, điểm góc cạnh đôi sẽ di chuyển theo nhịp.

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

Để "phá vỡ" các trường tròn để mỗi trường có thể di chuyển độc lập với nhau, di chuột qua và nhấp chuột phải vào điểm điều khiển liên quan, sau đó chọn Phá vỡ trường tròn từ menu ngữ cảnh.Một khi bị hỏng, bạn có thể di chuyển mỗi điểm chạm mà không ảnh hưởng đến các điểm chạm 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 hình ảnh đường đi

Bạn có thể tùy chỉnh sự xuất hiện hình thức của một Path2D với các thuộc tính sau:

Tài sảnMô tả
Color3Đặt màu của đường dẫn.
ThicknessĐặt độ dày của đường đi, bằng điểm.
VisibleLàm cho con đường hiển thị hay không trong cả chỉnh sửa và chạy thời gian.
ZIndexXếp thứ tự mà một con đường được 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.

Tầng ZIndex
>

Lập trình đường đi

Lập trình có ích cho một số công việc liên quan đến con đường.Các ví dụ sau đây sử dụng các phương pháp như mà trả về một bảng của và mà trả về vị trí tại một giá trị nhất định trên đường viền.

Sắp xếp các đối tượng UI trên đường đi

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
-- Lúc đầu sắp xếp các đối tượng UI con trên đường dẫn
arrangeChildren()
-- Lắng nghe trẻ em được thêm/bị xóa để điều chỉnh sắp xếp
parent.ChildAdded:Connect(arrangeChildren)
parent.ChildRemoved:Connect(arrangeChildren)
Hoạt hình đối tượng UI dọc theo đường đi

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