UIDragDetector

顯示已棄用項目

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

UIDragDetector 實例可以幫助和鼓勵在體驗中與 2D 用戶界面元素進行互動,例如滑塊和旋轉器。關鍵功能包括:

  • 在任何 GuiObject 實例下放置 UIDragDetector 來使其可以通過所有輸入拖曳而不需要單條代碼。

  • 從多個 DragStyle 選項中選擇,定義對象如何通過 ResponseStyle 回應運動,並可選擇應用軸、移動限制或拖動邊界。

  • 腳本可以回應拖曳對象的操作來驅動邏輯回應,例如調整設置。

  • 在工作室工作,只要你不使用選擇、移動、縮放或旋轉工具,或某些插件或工作室的編輯器工具。

概要

屬性

方法

活動

屬性

ActivatedCursorIcon

ContentId
平行讀取

將鼠標指示符設為在此 UIDragDetector 的父處激活時顯示的圖示。如果此屬性為空白,偵測器將使用預設圖示。

若要變更啟用的鼠標圖示,將此屬性設為你想使用的圖像的資產ID。

平行讀取

當偵測器的 BoundingUI 被設置時,決定拖曳到的使用者介面對象的邊界行為。請參閱 Enum.UIDragDetectorBoundingBehavior 每個設定的行為細節。

BoundingUI

平行讀取

當設定時, UIDragDetector 實例將不允許將父GuiObject 的邊界拖出 BoundingUI 實個體、實例的邊界。

請注意,如果父 GuiObject 的一部分超出了 BoundingUI 的範圍,拖動開始時的初始輸入位置和拖動期間的相對位置將被用於綁定偵測直到整個拖動對象都在範圍內,之後對象將被限制在範圍內。

CursorIcon

ContentId
平行讀取

將鼠標懸停在此 UIDragDetector 的父處時顯示曲標圖示。如果此屬性為空白,偵測器將使用預設圖示。

若要變更指標圖示,將此屬性設為你想使用的圖像的資產ID。

DragAxis

平行讀取

Vector2 值,定義拖動對象的移動軸當 DragStyle 設為 Enum.UIDragDetectorDragStyle.TranslateLine 時。軸在 未定義,否則軸將在該實例的本地空間中定義,在那種情況下,軸將在該實個體、實例的本地空間中定義。

平行讀取

只適用於通過 SetDragStyleFunction()AddConstraintFunction() 註冊自訂拖動功能。設置定義註冊功能輸入/輸出相對性的範式。

例如,將註冊函數的 返回設為 的屬性,將偵測器的父 移至指定的 中,而將相同的 返回設為 的屬性,將偵測器的父 移到指定的 中。

DragRotation

平行讀取

目前拖動所執行的旋轉。這個值在 UIDragDetector 定義為度與本地空間相關,除非 ReferenceUIInstance 被定義,否則旋轉將在該實例的本地空間和其正面的 X 軸中定義。

此屬性可在沒有啟動拖動以旋轉拖動的對物件時變更。

平行讀取

只適用於通過 SetDragStyleFunction()AddConstraintFunction() 註冊自訂拖動功能。設置定義註冊功能輸入/輸出空間的範式。

例如,如果偵測器的父GuiObject是旋轉的父GuiObject的孩子:

平行讀取

用於生成建議運動的方法,給予一個輸入位置向量流。見 Enum.UIDragDetectorDragStyle 獲得選項。

DragUDim2

平行讀取

目前拖動所表達的翻譯值 UDim2 值。翻譯通過 OffsetScale 值變更來完成,取決於 DragRelativity 值,並且與偵測器的本地空間無關,除非 ReferenceUIInstance 被定義。

此屬性可在沒有啟動拖動以移動拖動的對物件時變更。

Enabled

平行讀取

如果 true , 則 UIDragDetector 回應用戶輸入;如果 false , 則不會。

MaxDragAngle

平行讀取

如果此屬性大於 MinDragAngle ,旋轉將被限制在 MinDragAngleMaxDragAngle 範圍內。正向值會阻止時鐘旋轉,而負向值會阻止反時鐘旋轉。

這不是限制式;它只是阻礙偵測器嘗試在限制內生成運動,以便保持在限制內。參見 AddConstraintFunction() 以添加自訂約束到拖動。

只有相關,如果 DragStyleEnum.UIDragDetectorDragStyle.Rotate

MaxDragTranslation

平行讀取

如果相應的 Offset 和/或 Scale 值大於 MinDragTranslation 在所有維度中的值,線性/平面翻譯將被限制在 MinDragTranslationMaxDragTranslation 範圍內。

這不是限制式;它只是阻礙偵測器嘗試在限制內生成運動,以便保持在限制內。參見 AddConstraintFunction() 以添加自訂約束到拖動。

僅相關於 DragStyleEnum.UIDragDetectorDragStyle.TranslateLineEnum.UIDragDetectorDragStyle.TranslatePlane 時。

MinDragAngle

平行讀取

如果此屬性小於 MaxDragAngle ,旋轉將被限制在 MinDragAngleMaxDragAngle 範圍內。正向值會阻止時鐘旋轉,而負向值會阻止反時鐘旋轉。

這不是限制式;它只是阻礙偵測器嘗試在限制內生成運動,以便保持在限制內。參見 AddConstraintFunction() 以添加自訂約束到拖動。

只有相關,如果 DragStyleEnum.UIDragDetectorDragStyle.Rotate

MinDragTranslation

平行讀取

如果相應的 Offset 和/或 Scale 值小於 MaxDragTranslation 在所有維度中的值,線性/平面翻譯將被壓縮在 MinDragTranslationMaxDragTranslation 之間的範圍內。

這不是限制式;它只是阻礙偵測器嘗試在限制內生成運動,以便保持在限制內。參見 AddConstraintFunction() 以添加自訂約束到拖動。

僅相關於 DragStyleEnum.UIDragDetectorDragStyle.TranslateLineEnum.UIDragDetectorDragStyle.TranslatePlane 時。

ReferenceUIInstance

平行讀取

一個 GuiObject 實例,其本地空間和絕對中心位置是偵測器的參考空間和起源。設置此參考會影響屬性,例如 DragUDim2 , DragRotation , 以及 DragAxis 的行為。

平行讀取

一旦提出的動作已計算並可能受到限制,這種方法將用於確定如何移動(或不移動工具)受到 GuiObject 影響的 UIDragDetector 。請參閱 Enum.UIDragDetectorResponseStyle 以獲得選項。

SelectionModeDragSpeed

平行讀取

定義翻譯的最大拖動速度為第一個祖先 ScaleOffset 的結合,或 ScreenGuiSurfaceGui 屬於最後一個祖先的 UIDragDetector。此值必須為正值,任何低於 0 的值將被限制為 0

SelectionModeRotateSpeed

平行讀取

定義在每秒鐘的最大角度,在那裡 UIDragDetector 可以旋轉。此值必須為正值,任何低於 0 的值將被壓縮到 0

UIDragSpeedAxisMapping

平行讀取

Enum.UIDragSpeedAxisMapping 值,決定了 X / Y 維度拖動速度。

方法

AddConstraintFunction

添加一個功能來修改或限制提出的動作。函數接受輸入 UDim2 (位置) 和浮動 (旋轉) 的 建議 動作和返回一個 UDim2 和浮動的 修改 或未修改的動作。您可以添加多個功能,將在 priority 順序中呼叫,並在鏈中傳遞結果。

輸入可以用 DragSpace 屬性定義的空間表達,或用 DragRelativity 屬性定義的最終期望位置/旋轉。輸出應在同一空間和相對速度下表達,除非被返回指定的 Enum.UIDragDetectorDragRelativityEnum.UIDragDetectorDragSpace 作為第三和第四個返回值。

要移除添加的約束函數,請在返回的連接對物件上呼叫 Disconnect()

參數

priority: number

這種方法添加的功能的優先級順序。更高的值取得優先於更低的值。

預設值:""
function: function

修改或限制提出的動作的功能。此功能接受輸入 UDim2 和浮動的 建議 動作,並返回 UDim2 和浮動的 修改 或未修改的動作。它可選擇返回 Enum.UIDragDetectorDragRelativityEnum.UIDragDetectorDragSpace 作為第三和第四個返回值作為輸出覆蓋。

預設值:""

返回

使用此連線對象來移除約束函數。

GetReferencePosition

當未設設定 時,此函數返回拖曳對物件的即時父 位置 (如果存在),或者拖曳對物件的 位置。

ReferenceUIInstance 被設設定時,此函數返回該參考實個體、實例的 UDim2 位置。


返回

UDim2 目前拖動的參考元素位置。

GetReferenceRotation

當未設設定 ReferenceUIInstance 時,此函數會返回拖曳對物件的即時父親的旋轉 GuiObject (如果存在),或者拖曳對物件的旋轉。

ReferenceUIInstance 被設設定時,此函數返回該參考實個體、實例的旋轉。


返回

當前拖動的參考元素的旋轉。

SetDragStyleFunction

()

傳送一個函數,如果和只有當 DragStyle 設為 Enum.UIDragDetectorDragStyle.Scriptable 時才使用。給定的函數接收信號的屏幕空間輸入位置,並使用類型 Vector2 返回包含拖動所需動作的UDim2(位置)和漂浮(旋轉)位置。返回值的空間和運動的相對性由 DragSpaceDragRelativity 屬性決定,除非通過返回指定的 Enum.UIDragDetectorDragRelativityEnum.UIDragDetectorDragSpace 作為第三和第四個返回值來覆蓋它們。

如果函數返回 nil,對象不會被移動。如果腳本尚未收集所需的所有資訊來提供正確的答案,或在暫時情況下您希望對象留在原地,這很有用。

參數

function: function

用於監控DragContinue信號的功能。此功能接收訊號的屏幕空間輸入位置,並返回包含所需動作的 UDim2 和浮動,包含所需空間和相對速度的拖動。如果此功能返回 nil,對象不會被移動。

預設值:""

返回

()

活動

DragContinue

當使用者繼續拖曳介面元素後 DragStart 已啟動時,發生火災。

參數

inputPosition: Vector2

Vector2 代表當前輸入位置。


DragEnd

當使用者停止拖動 UI 元素時發生火災。

參數

inputPosition: Vector2

Vector2 代表當前輸入位置。


DragStart

當使用者開始拖動介面元素時發生火災。

參數

inputPosition: Vector2

Vector2 代表當前輸入位置。