2D 道路

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

Class.Path2D 實個體、實例,包括其 API 方法和屬性,讓您實現 2D 曲線和 2D 彎曲線,有助於路徑基礎動畫和圖形編輯器的 UI 效果。

建立 2D 道路徑

要將 Path2D 添加到屏幕或體驗中的對物件:

  1. Explorer 窗口中,在可見的 Class.ScreenGui 或 Class.SurfaceGui 下插入一個 1>Class.Path2D1> 實例。

    Path2D instance parented to a ScreenGui in the Explorer hierarchy.
  2. 選擇新的 Path2D 以顯示視窗工具小工具。 預設值下,選擇 添加點 工具。

    Add Point tool indicated in the 2D path editor widget.
  3. 開始點擊屏幕來添加一系列 控制點 以形成一個路徑。初始路徑可能會不精確,但您可以稍後調整控制點的位置。

    Diagram illustrating an example path created using the Add Point tool to connect a series of points.
  4. 完成後,按下 widget 的 完成 按鈕或按下 按入

修改控制點

Path2D 階層中選擇了 Class.Path2D ,你可以修改其個別控制點以及其 tangents。

移動點

要在路徑上移動控制點,啟用 選取 工具 ( V ) 然後按一下並拖曳它到新位置。

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.

對於非常具體的位置,選擇控制點,然後,在 屬性 窗口中,為點的 SelectedControlPointData 屬性設置新位置 ( UDim2 )。

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

注意點的位置不是絕對,而是相對於路徑的父容器。例如,比較控制點 30% 從左邊和 20% 從頂部為路徑內的一個路徑,而不是放置在 ScreenGui 內的相同路徑。當放置在 Class.Frame

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

增加點數

新控制點可以在兩個現有點之間或從使用 Path2D 工具 ( 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.
在路徑上隨機點擊,然後按一下來在兩個已存在的點之間添加控制點
Diagram illustrating how a control point is added to the end of a path using the Add Point tool.
按一下端點,然後再按一下即可從那一端添加控制點

刪除點

要刪除控制點,請將鼠標指针移動至控制點右邊,然後從上下文提示菜單中選擇 刪除點

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

控制點軌道

控制點 棱角 讓您可以在路徑上創建並調整曲線。

Diagram illustrating a curved path with several tangent control points.

增加方向

要將軌道添加到任何尚未有軌道的控制點:

  1. 啟用 Add Tangent 工具在工具小工具中。

    Add Tangent tool indicated in the 2D path editor widget.
  2. 將鼠標擺置在所需控制點上,然後按一下以添加兩個 鏡像 切角 (可選) 。

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

調整方向角

要調整個別控制點的現有棱角:

  1. 啟用 選取工具 ( V 工具 )

    Select tool indicated in the 2D path editor widget.
  2. 將鼠標揮動在控制點上,然後點擊並拖曳它到新位置。如果控制點是鏡像,則會移動雙方的控制點。

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

要手動設置特定 UDim2 位置以對齒輪:

  1. 啟用 選取 工具 ( V ) 並選擇控制點。在 屬性 窗口中,擴展 1> Class.Path2D.SelectedControlPointData|SelectedControlPointData1> 字段來顯示 4> Datatype.Path

    LeftTangent and RightTangent properties of a Path2D control point indicated in the Properties window.
  2. 設置位置為 LeftTangent 和/或 RightTangent 。注意這會導致鏡像行為的變更。

刪除接線

要從控制點移除兩個軸從,將鼠標移動至該點,然後右鍵點擊,然後從上下文菜單中選擇 清除軸

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

要刪除只有一個角度 (左或右) ,將鼠標放在該角度的標記上,然後選擇 刪除角度

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

斷條和鏡像

由預設,讓齒輪鏡齒相互。當您拖曳以調整一個齒輪標記時,雙方的齒輪點將在協調中移動。

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

要將軸對稱分開,讓每個人都可以獨立於另一個人,將鼠標指针移動到與軸對稱的位置,然後從上下文菜單中選擇 軸對稱 。破損後,您可以移動每個軸標記,不會影響其他人。

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

道路視覺特性

您可以使用以下屬性自訂 Path2D 的視覺外觀:

屬性說明
Color3設定道路線的顏色。
Thickness以畫素設定道路線的厚度。
Visible在編輯和執行時使路徑可見或不可見。
ZIndex訂購與其他 GUI 相對的路徑。
Diagram illustrating a path with Thickness of 2 and Color3 of (125, 125, 125).
厚度 = 2色3 = (125, 125, 125)
Diagram illustrating a path with Thickness of 10 and Color3 of (225, 0, 50).
厚度 = 10色3 = (225, 0, 50)
Diagram illustrating a path layered in front of another using the ZIndex property.
ZIndex 層級

路徑指令碼

腳本對於多個路徑相關工作流程有用。以下例子使用了方法 such as GetControlPoints() ,這會返回一個表 of Datatype.Path2DControlPoint|Path2D

在路徑上排列 UI 對象

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
-- 初始設置子兒童 UI 對象在路徑上
arrangeChildren()
-- 聆聽孩子被添加/移除以調整配置
parent.ChildAdded:Connect(arrangeChildren)
parent.ChildRemoved:Connect(arrangeChildren)
以路徑上的動畫介面對象

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