DragDetector

顯示已棄用項目

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

Class.DragDetector 實例可以與 3D 對象在體驗中互動,例如開門和抽屜、滑動零件、和很多其他。關鍵功能包括:

  • DragDetector 放在任何 BasePartModel 下,以便能夠在所有輸入 (滑鼠、觸摸、遊戲控制器和 VR) 上拖曳,無論是單一行代碼。

  • 從多個 DragStyle 選項中選擇,定義對象如何以 ResponseStyle 的速度反應,並且可選擇額外的軸或運動限制。

  • 腳本可以回應拖曳對象來控制 UI 或做出合理的決定,例如調整室內燈光等級基於滑動牆開關的減暗器。

  • 玩家可以操作錨定的零件或模型,並且在釋放時保持正確位置。

  • Class.DragDetector|DragDetectors 在 Studio 工作,直到你不是使用 選擇移動 、0> 調整0> 或 DragDetectors3> 工具來測試和調整拖動對象時更容易。

參閱3D 拖曳偵測器指南,了解詳細和使用範例。

概要

屬性

屬性 繼承自 ClickDetector

方法

活動

活動 繼承自 ClickDetector

屬性

ActivatedCursorIcon

ContentId
平行讀取

設定鼠標啟用時顯示的游標圖示。如果此屬性為空,則探測器會使用預設圖示。

若要變更啟用的指针圖示,將此屬性設置為您想要使用的圖像的資產 ID。

ApplyAtCenterOfMass

平行讀取

當 false (預設值) 時,限制強度在用戶點擊時適用。Enum.DragDetectorResponseStyle.Physical 只有在 Class.DragDetector.ResponseStyle|ReplyStyle 是 1> Enum.DragDetectorResponseStyle.Physical1> 和父對象未錨定時。

未複製
平行讀取

運動的主軸,與參考框架表示相對。對於 DragStyleEnum.DragDetectorDragStyle.TranslateLine 的方向;對於

DragFrame

平行讀取

如果 ReferenceInstance 已設定,pivot 相對於參考框;否則,pivot 相對於其框架在開始拖動的時候。

平行讀取

使用提供時箭頭光線的 Stream 來生成所有建議的動作。 請參閱 Enum.DragDetectorDragStyle 獲取選項。

Enabled

平行讀取

如果是,DragDetector 會回應使用者輸入;如果是,Class.DragDetector 不會。

GamepadModeSwitchKeyCode

平行讀取

在遊戲控制器輸入期間,Enum.KeyCode 用於切換副動作模式。只適用於拖曳偵測器的 DragStyle 有主動和副動作模式。

KeyboardModeSwitchKeyCode

平行讀取

在鍵盤輸入期間,Enum.KeyCode 為切換次要運動模式。只適用於拖曳偵測器的 DragStyle 有兩個主要和次要運動模式。

MaxDragAngle

平行讀取

如果此值大於 MinDragAngle,翻譯將在該範圍內壓縮。

這不是限制式;它僅會阻止拖曳偵測器的嘗試以在限制內生成動作。請參閱 AddConstraintFunction() 以將自訂限制添加到拖曳。

只有相關 if DragStyleEnum.DragDetectorDragStyle.RotateAxis

MaxDragTranslation

平行讀取

在任何尺寸上,如果此值大於 MinDragTranslation ,翻譯將在該範圍內壓縮。

這不是限制式;它僅會阻止拖曳偵測器的嘗試以在限制內生成動作。請參閱 AddConstraintFunction() 以將自訂限制添加到拖曳。

MaxForce

平行讀取

對於達到目標所需的最大力量。只有在 ResponseStyleEnum.DragDetectorResponseStyle.Physical 和上一個對象是未錨定的情況下。

MaxTorque

平行讀取

對於目標達到目標所需的最大扭矩。只有相關,如果 ResponseStyleEnum.DragDetectorResponseStyle.Physical 和上一個目標對象沒有錨定。

MinDragAngle

平行讀取

如果這小於 MaxDragAngle ,翻譯將在該範圍內壓縮。

這不是限制式;它僅會阻止拖曳偵測器的嘗試以在限制內生成動作。請參閱 AddConstraintFunction() 以將自訂限制添加到拖曳。

只有相關 if DragStyleEnum.DragDetectorDragStyle.RotateAxis

MinDragTranslation

平行讀取

在任何尺寸,如果這是 MaxDragTranslation 的小於,翻譯將在該範圍內壓縮。

這不是限制式;它僅會阻止拖曳偵測器的嘗試以在限制內生成動作。請參閱 AddConstraintFunction() 以將自訂限制添加到拖曳。

Orientation

平行讀取

指定關鍵框相對於參考框的移動軸的旋轉 Y 度(不會變更參考框自身的方向)。線性翻譯和軸向旋轉將在此重新定向 Y 軸上,並且在 X 平面上(1>XZ1>平面)的平移中更新。變更此值會自動

平行讀取

控制玩家可以與 DragDetector 交互的權限級別。預設為 Enum.DragDetectorPermissionPolicy.Everybody

ReferenceInstance

平行讀取

Class.DragDetector.DragFrame|DragFrame 是拖曳偵測器的參考框架。DragFrame 是繪製此 CFrame 的方法,可以通過 1> Class.DragDetector:GetReferenceFrame()|GetReferenceFrame()1> 方法獲得。

如果此實例是 PVInstance ,則參照框架會是其 pivot;如果是 Attachment ,則其世界 CFrame 會基於拖曳探測器的上一個 1> Class.BasePart1> 或

平行讀取

考慮到所提出的運動可能受到限制,或可能不移動受影響的對象,這是使用 DragDetector 移移動工具或不移移動工具受影響的對象的方法。 參見 Enum.DragDetectorResponseStyle 獲得選項。

Responsiveness

平行讀取

값更高會使對象更快達到目標。 只有在 ResponseStyleEnum.DragDetectorResponseStyle.Physical 和上一個對象沒有錨定時。

RunLocally

平行讀取

如果為假 (預設值),客戶端向伺服器發送複製信號 (DragStart ,DragContinueDragEnd) ,處理指针射線,並對數據模型進行更改,然後將它們重複到客戶端。

如果是,客戶端自己處理這些信號,並且不會將它們複製到服務伺服器。客戶端 LocalScripts 可以用來回應這些事件,而 RemoteEvents 可以用來發送任何結果複製到服務伺服器的變更。

SecondaryAxis

未複製
平行讀取

運動的副軸。與 Attachments 使用相同的方法來設定方向有關。

TrackballRadialPullFactor

平行讀取

當鼠標位於軌道球之外時,DragDetector 可以應用一個向內旋轉的拉線來將球變成球,讓它讓球向內旋轉,就像它想要向內滾動。這個屬性是向總和添加該旋轉方向的 0 到 1 倍乘數。只有在 Class.DragDet

TrackballRollFactor

平行讀取

當鼠標位於軌道球之外時,DragDetector 可以應用滾動旋轉,使球如同擺在一張針盤上面,DragStyle 是一個 0 到 1 的乘數,僅適用於 Class.DragDetectorDragStyle.

VRSwitchKeyCode

平行讀取

在 VR 輸入期間,Enum.KeyCode 可用來切換運動模式的副模式。只有在拖曳偵測器的 DragStyle 具有主要和副主要模式的運動模式。

WorldAxis

未複製
平行讀取

世界空間中的 Axis 表示。與 Attachments 相關。

WorldSecondaryAxis

未複製
平行讀取

世界空間中的 SecondaryAxis 表示方向使用 Attachments 的方法。

方法

AddConstraintFunction

添加一個功能來修改或限制所提供的動作。 功能接受輸入的 CFrame 以及 所提供的動作 的輸入,並返回 CFrame 以及 2> 修改2> 或未修改的動作。 輸入和輸出都

要移除新增的限制函數,請在返回的連接對物件上呼叫 Disconnect()

參數

priority: number

這個方法添加的功能的優先權。更高的值取得優先權。

function: function

修改或限制所講述的動作的功能。這個功能接受輸入 CFrame提交 動作和返回 CFrame 的 1>修改1> 或未修改的動作,都相對於參考框架。


返回

使用此連接對象來移除限制函數。

GetReferenceFrame

返回 CFrame 中的引用,其中表示的是動作;請參閱 ReferenceInstance 屬性獲取更多詳情。


返回

表示運動的引用 CFrame

RestartDrag

void

可以從脚本中召喚拖曳以重新啟動拖曳使用新參數,如果參數如 DragStyleAxisSecondaryAxis 變更。


返回

void

SetDragStyleFunction

void

如果 DragStyle 設為 Enum.DragDetectorDragStyle.Scriptable ,則會在回應應答一個 DragContinue

如果函數返回 nil ,對象將不會移動。這很有用,如果腳本尚未收集到正確的答案,或在暫時情況下,您想要讓對象保留在原位。

參數

function: function

監視指令 DragContinue 信號。這個函數接收信號的世界空間指针射線,並且返回一個 CFrame 含有所需位置和方向的擋柱位置。如果此功能返回 nil,對象將不會移動。


返回

void

SetPermissionPolicyFunction

void

如果


local dragDetector = script.Parent.DragDetector
dragDetector.PermissionPolicy = Enum.DragDetectorPermissionPolicy.Scriptable
dragDetector:SetPermissionPolicyFunction(function(player, part)
if player and player:GetAttribute("IsInTurn") then
return true
elseif part and not part:GetAttribute("IsDraggable") then
return false
else
return true
end
end)

參數

function: function

設定偵測器互動性的功能。這個功能接受 Player 參數來啟用/禁用偵測器對


返回

void

活動

DragContinue

發生在 DragStart 已初始化後,當使用者繼續拖曳對象。

參數

playerWhoDragged: Player

發起拖動的 Player,誰創建了拖動通過 DragStart 並正在繼續拖動。

cursorRay: Ray

Ray 從游標發射,指向場景。

viewFrame: CFrame

CFrame 的用戶 Camera

vrInputFrame: OptionalCoordinateFrame

如果使用 VR 輸入裝置,手持指針/控制器的 CFrame

isModeSwitchKeyDown: bool

拖曳探測器的 DragStyle 具有兩個主要和次要的動作模式,此參數表示是否使用 KeyboardModeSwitchKeyCode 、 Class.DragDetector.GamepadModeSwitch


DragEnd

使用者停止拖曳對物件時發射。

參數

playerWhoDragged: Player

已創建拖動通過 Player 的拖動,並且已將拖動結束 (已發行) 拖動。


DragStart

發物件對象開始拖曳時。

參數

playerWhoDragged: Player

Player 誰已初始化拖動。

cursorRay: Ray

Ray 從游標發射,指向場景。

viewFrame: CFrame

CFrame 的用戶 Camera

hitFrame: CFrame

拖曳的指標射線投射的命中框。

clickedPart: BasePart

拖動啟動的部分。 零件被指定的零件。

vrInputFrame: OptionalCoordinateFrame

如果使用 VR 輸入裝置,手持指針/控制器的 CFrame

isModeSwitchKeyDown: bool

拖曳探測器的 DragStyle 具有兩個主要和次要的動作模式,此參數表示是否使用 KeyboardModeSwitchKeyCode 、 Class.DragDetector.GamepadModeSwitch