Class.DragDetector 實例可以與 3D 對象在體驗中互動,例如開門和抽屜、滑動零件、和很多其他。關鍵功能包括:
將 DragDetector 放在任何 BasePart 或 Model 下,以便能夠在所有輸入 (滑鼠、觸摸、遊戲控制器和 VR) 上拖曳,無論是單一行代碼。
從多個 DragStyle 選項中選擇,定義對象如何以 ResponseStyle 的速度反應,並且可選擇額外的軸或運動限制。
腳本可以回應拖曳對象來控制 UI 或做出合理的決定,例如調整室內燈光等級基於滑動牆開關的減暗器。
玩家可以操作錨定的零件或模型,並且在釋放時保持正確位置。
Class.DragDetector|DragDetectors 在 Studio 工作,直到你不是使用 選擇 、 移動 、0> 調整0> 或 DragDetectors3> 工具來測試和調整拖動對象時更容易。
參閱3D 拖曳偵測器指南,了解詳細和使用範例。
概要
屬性
設定鼠標啟用時顯示的游標圖示。 Class.DragDetector 的父級。
是否要對對物件的中心 масс強制適用限制力。
與參考框相對的動作主軸。
Datatype.CFrame 的 pivot,依賴拖動偵測器的 ReferenceInstance 。
用於生成所提出的動作的原則。
Class.DragDetector 是否回應使用者輸入。
在遊戲控制器輸入時,為副動作模式的 modifier Enum.KeyCode。
在鍵盤輸入期間,修改器 Enum.KeyCode 為第二運動模式。
以 MinDragAngle 為拖動探測器的嘗試,阻止其創建動作。
以 MinDragTranslation 和拖曳探測器的嘗試來阻止拖曳探測器的嘗試生成動作。
對於目標的力量已達最大。
已對目標適用最大扭矩,以達到目標的目標。
以 MaxDragAngle 與拖曳探測器的嘗試來阻止拖曳探測器的嘗試生成動作。
以 MaxDragTranslation 與拖曳器偵測器的嘗試,阻止拖曳器偵測器的嘗試生成動作。
指定相對參考框架的 YXZ 旋轉方向。
控制玩家可以與 DragDetector 互動的權限等級。
Datatype.CFrame 是拖曳偵測器的引用框。
使用移動器來移動工具,或不移動工具,受影響的對象。
值更高會使目標更快地達到目標。
要在 DragDetector 上複製使用者輸入的內容,或是要在特定客戶端上保留本地狀態。
動作的副軸。
如果 DragStyle 是 Enum.DragDetectorDragStyle.RotateTrackball 的乘數,添加 radial 旋轉方向為總和的貢獻。
如果 DragStyle 是 Enum.DragDetectorDragStyle.RotateTrackball 的倍增器,將滾動旋轉添加到總和。
在 VR 輸入期間,Enum.KeyCode 為副動作模式的修改器。
世界空間中的 Axis 。
世界空間中表示的 SecondaryAxis。
設定鼠標暫停時顯示的游標圖示。 Class.ClickDetector 或 DragDetector 的父親。
玩家與 ClickDetector 或 DragDetector 的距離最大。
方法
添加一個函數來修改或限制所提供的動作。
返回表示動作的引用 CFrame 。
可以從脚本中召喚拖动使用新參數重新啟動拖動。
如果 DragStyle 設為 Enum.DragDetectorDragStyle.Scriptable ,則通過使用此函數。
如果 PermissionPolicy 設為 Enum.DragDetectorPermissionPolicy.Scriptable ,則通過使用此功能來使用它。
活動
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal
發生在 DragStart 已初始化後,當使用者繼續拖曳對象。
使用者停止拖曳對物件時發射。
發物件對象開始拖曳時。
發生玩家與 ClickDetector 或 DragDetector 的親子。
發生當 ClickDetector 或 DragDetector 被玩家擁有時發生。
發射時,當玩家的鼠標離開 ClickDetector 或 DragDetector 的父親時。
發生在玩家右鍵點擊 ClickDetector 或 DragDetector 上。
屬性
ActivatedCursorIcon
設定鼠標啟用時顯示的游標圖示。如果此屬性為空,則探測器會使用預設圖示。
若要變更啟用的指针圖示,將此屬性設置為您想要使用的圖像的資產 ID。
ApplyAtCenterOfMass
當 false (預設值) 時,限制強度在用戶點擊時適用。Enum.DragDetectorResponseStyle.Physical 只有在 Class.DragDetector.ResponseStyle|ReplyStyle 是 1> Enum.DragDetectorResponseStyle.Physical1> 和父對象未錨定時。
MaxDragAngle
如果此值大於 MinDragAngle,翻譯將在該範圍內壓縮。
這不是限制式;它僅會阻止拖曳偵測器的嘗試以在限制內生成動作。請參閱 AddConstraintFunction() 以將自訂限制添加到拖曳。
只有相關 if DragStyle 是 Enum.DragDetectorDragStyle.RotateAxis 。
MaxDragTranslation
在任何尺寸上,如果此值大於 MinDragTranslation ,翻譯將在該範圍內壓縮。
這不是限制式;它僅會阻止拖曳偵測器的嘗試以在限制內生成動作。請參閱 AddConstraintFunction() 以將自訂限制添加到拖曳。
MaxTorque
對於目標達到目標所需的最大扭矩。只有相關,如果 ResponseStyle 是 Enum.DragDetectorResponseStyle.Physical 和上一個目標對象沒有錨定。
MinDragAngle
如果這小於 MaxDragAngle ,翻譯將在該範圍內壓縮。
這不是限制式;它僅會阻止拖曳偵測器的嘗試以在限制內生成動作。請參閱 AddConstraintFunction() 以將自訂限制添加到拖曳。
只有相關 if DragStyle 是 Enum.DragDetectorDragStyle.RotateAxis 。
MinDragTranslation
在任何尺寸,如果這是 MaxDragTranslation 的小於,翻譯將在該範圍內壓縮。
這不是限制式;它僅會阻止拖曳偵測器的嘗試以在限制內生成動作。請參閱 AddConstraintFunction() 以將自訂限制添加到拖曳。
Orientation
指定關鍵框相對於參考框的移動軸的旋轉 Y 度(不會變更參考框自身的方向)。線性翻譯和軸向旋轉將在此重新定向 Y 軸上,並且在 X 平面上(1>XZ1>平面)的平移中更新。變更此值會自動
ReferenceInstance
Class.DragDetector.DragFrame|DragFrame 是拖曳偵測器的參考框架。DragFrame 是繪製此 CFrame 的方法,可以通過 1> Class.DragDetector:GetReferenceFrame()|GetReferenceFrame()1> 方法獲得。
如果此實例是 PVInstance ,則參照框架會是其 pivot;如果是 Attachment ,則其世界 CFrame 會基於拖曳探測器的上一個 1> Class.BasePart1> 或
ResponseStyle
考慮到所提出的運動可能受到限制,或可能不移動受影響的對象,這是使用 DragDetector 移移動工具或不移移動工具受影響的對象的方法。 參見 Enum.DragDetectorResponseStyle 獲得選項。
Responsiveness
값更高會使對象更快達到目標。 只有在 ResponseStyle 是 Enum.DragDetectorResponseStyle.Physical 和上一個對象沒有錨定時。
RunLocally
如果為假 (預設值),客戶端向伺服器發送複製信號 (DragStart ,DragContinue,DragEnd) ,處理指针射線,並對數據模型進行更改,然後將它們重複到客戶端。
如果是,客戶端自己處理這些信號,並且不會將它們複製到服務伺服器。客戶端 LocalScripts 可以用來回應這些事件,而 RemoteEvents 可以用來發送任何結果複製到服務伺服器的變更。
TrackballRadialPullFactor
當鼠標位於軌道球之外時,DragDetector 可以應用一個向內旋轉的拉線來將球變成球,讓它讓球向內旋轉,就像它想要向內滾動。這個屬性是向總和添加該旋轉方向的 0 到 1 倍乘數。只有在 Class.DragDet
TrackballRollFactor
當鼠標位於軌道球之外時,DragDetector 可以應用滾動旋轉,使球如同擺在一張針盤上面,DragStyle 是一個 0 到 1 的乘數,僅適用於 Class.DragDetectorDragStyle.
方法
AddConstraintFunction
添加一個功能來修改或限制所提供的動作。 功能接受輸入的 CFrame 以及 所提供的動作 的輸入,並返回 CFrame 以及 2> 修改2> 或未修改的動作。 輸入和輸出都
要移除新增的限制函數,請在返回的連接對物件上呼叫 Disconnect()。
參數
這個方法添加的功能的優先權。更高的值取得優先權。
返回
使用此連接對象來移除限制函數。
SetDragStyleFunction
如果 DragStyle 設為 Enum.DragDetectorDragStyle.Scriptable ,則會在回應應答一個 DragContinue 信
如果函數返回 nil ,對象將不會移動。這很有用,如果腳本尚未收集到正確的答案,或在暫時情況下,您想要讓對象保留在原位。
參數
監視指令 DragContinue 信號。這個函數接收信號的世界空間指针射線,並且返回一個 CFrame 含有所需位置和方向的擋柱位置。如果此功能返回 nil,對象將不會移動。
返回
SetPermissionPolicyFunction
如果
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)
參數
返回
活動
DragContinue
發生在 DragStart 已初始化後,當使用者繼續拖曳對象。
參數
如果使用 VR 輸入裝置,手持指針/控制器的 CFrame。
拖曳探測器的 DragStyle 具有兩個主要和次要的動作模式,此參數表示是否使用 KeyboardModeSwitchKeyCode 、 Class.DragDetector.GamepadModeSwitch
DragStart
發物件對象開始拖曳時。
參數
拖曳的指標射線投射的命中框。
拖動啟動的部分。 零件被指定的零件。
如果使用 VR 輸入裝置,手持指針/控制器的 CFrame。
拖曳探測器的 DragStyle 具有兩個主要和次要的動作模式,此參數表示是否使用 KeyboardModeSwitchKeyCode 、 Class.DragDetector.GamepadModeSwitch