DragDetector
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
インスタンスは、ドアや引き出しの開口、パーツのスライドなど、エクスペリエンスで3Dオブジェクトとの相互作用を促進し、協力します。主な機能には以下があります:
すべての入力 (マウス、タッチ、ゲームパッド、および VR) を通じてドラッグできるように、 または を任意の または の下に配置し、コードラインを 1つも使用しないでください。
複数の DragStyle オプションから選択し、オブジェクトが ResponseStyle を通じて動作にどのように応答するかを定義し、オプションで轴または移動制限を適用します。
スクリプトは、ドラッグされたオブジェクトの操作に応答して、UIをドライブしたり、スライディングウォールスイッチダイマーに基づいて部屋の照明レベルを調整したり、論理的な決定を下すことができます。
プレイヤーは固定されたパーツやモデルを操作でき、リリース時に置いた場所に正確に残ります。
DragDetectors 作業室では、 使用していない限り 、 選択 、 移動 、 スケール 、または 回転 ツールを使用しない限り、編集中にドラッグ可能なオブジェクトをテストし、調整するのが簡単になります。
詳細と使用例については、3D ドラッグ検出器 ガイドを参照してください。
概要
プロパティ
この DragDetector の親にマウスが有効になったときに表示されるカーソルアイコンを設定します。
制約力がオブジェクトの質量の中心に適用されるかどうか。
参照フレームに対して表現される動作の主軸。The primary axis of motion, expressed relative to the reference frame.
ピボットの CFrame は、ドラッグディテクターの ReferenceInstance に依存します。
提案された動作を生成するために使用されるパラダイム。
DragDetector がユーザーの入力に応答するかどうか。
ゲームパッド入力中、動作モードのセカンダリモディファイヤ Enum.KeyCode 。
キーボード入力中、動作モードのセカンダリモディファイヤ Enum.KeyCode 。
以下の MinDragAngle と一緒に、ドラッグ検出器の動作を生成する試みを妨げます。
以下の MinDragTranslation と一緒に、ドラッグ検出器の動作を生成する試みを妨げます。
オブジェクトが目標に到達するために適用される最大力。
オブジェクトが目標に到達するために適用される最大トルク。
以下の MaxDragAngle と一緒に、ドラッグ検出器の動作を生成する試みを妨げます。
以下の MaxDragTranslation と一緒に、ドラッグ検出器の動作を生成する試みを妨げます。
参照フレームに対する動作軸の回転 YXZ を指定します。
プレイヤーが DragDetector と対話できる許可レベルを制御します。
CFrame がドラッグディテクターの参照フレームであるインスタンス。
ドラッグディテクタに影響を受けるオブジェクトを移動するかどうかを決定するパラダイム。
より高い値は、オブジェクトが目標により迅速に到達するようにします。
ユーザーが DragDetector サーバーに入力したり、特定のクライアントにローカルで残ったりするかどうか
動作のセカンダリ軸。
If DragStyle が Enum.DragDetectorDragStyle.RotateTrackball である場合、ラジアル引っ張り回転を合計に貢献するためのマルチプライヤー。
If DragStyle が Enum.DragDetectorDragStyle.RotateTrackball である場合、ロール回転を合計に追加するための乗数。
VR入力中、動作モードのセカンダリモディファイヤ Enum.KeyCode 。
ワールドスペースで表現された Axis
ワールドスペースで表現された SecondaryAxis
マウスがこの ClickDetector または DragDetector の親にホバリングされたときに表示されるカーソルアイコンを設定します。
キャラクターと ClickDetector または DragDetector との最大距離は、プレイヤーがそれと対話できるようにするためです。
方法
提案された動作を変更または制限する機能を追加します。
動作が表現されている参照 CFrame を返します。
スクリプトから呼び出されて、新しいパラメータを使用してドラッグを再開できます。
パスする関数は、DragStyle が Enum.DragDetectorDragStyle.Scriptable に設定されている場合にのみ使用され、if と only が設定されている場合にのみ使用されます。
パスする関数は、PermissionPolicy が Enum.DragDetectorPermissionPolicy.Scriptable に設定されている場合にのみ使用され、if と only が設定されている場合にのみ使用されます。
イベント
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : boolean):RBXScriptSignal
ユーザーが DragStart が開始された後もオブジェクトをドラッグ続行すると、ファイアが発生します。
ユーザーがオブジェクトをドラッグ中止すると発火します。
ユーザーがオブジェクトをドラッグ開始すると、発火します。
プレイヤーが ClickDetector または DragDetector の親と対話するときに発火します。
親の ClickDetector または DragDetector がプレイヤーによってホバーされると、発火します。
プレイヤーのカーソルが ClickDetector または DragDetector の親から離れたときに発火します。
プレイヤーが右クリックしてマウスカーソルを ClickDetector または DragDetector に配置すると、炎が発生します。
プロパティ
ActivatedCursorIcon
この DragDetector の親にマウスが有効になったときに表示されるカーソルアイコンを設定します。このプロパティが空白のままにされると、ディテクターはデフォルトのアイコンを使用します。
有効になったカーソルアイコンを変更するには、このプロパティを使用したい画像のアセットIDに設定します。
ApplyAtCenterOfMass
[偽] (デフォルト) の場合、ユーザーがクリックしたポイントで制約力が適用されます。真になると、力がオブジェクトの質量の中心に適用されます。関連しているのは、ResponseStyle が Enum.DragDetectorResponseStyle.Physical であり、親オブジェクトが未固定である場合のみです。
Axis
参照フレームに対して表現される動作の主軸。The primary axis of motion, expressed relative to the reference frame.For a DragStyle of Enum.DragDetectorDragStyle.TranslateLine , the direction of translation; for Enum.DragDetectorDragStyle.TranslatePlane , the normal to the plane of motion; for Enum.DragDetectorDragStyle.RotateAxis , the axis of 1D 回転。この値を自動的に変更すると、Orientation が更新され、その逆も同様です。
DragStyle
プロポーズされた動作を生成するために使用されるパラダイム、ストリームのカーソルレイを指定されます。オプションは Enum.DragDetectorDragStyle を参照してください。
GamepadModeSwitchKeyCode
ゲームパッド入力中、Enum.KeyCode で移動モードの切り替え。ドラッグディテクターの DragStyle にプライマリモードとセカンダリモードの両方がある場合にのみ適用されます。
KeyboardModeSwitchKeyCode
キーボード入力中、Enum.KeyCode で移動モードの切り替え。ドラッグディテクターの DragStyle にプライマリモードとセカンダリモードの両方がある場合にのみ適用されます。
MaxDragAngle
これが MinDragAngle より大きい場合、翻訳はその範囲内に収まります。
これは制約ではありません; 単に制限内に留まるために、ドラッグディテクターの動作を生成する試みを妨げるだけです。AddConstraintFunction() を参照して、ドラッグにカスタム制約を追加します。
関連しているのは、DragStyle が Enum.DragDetectorDragStyle.RotateAxis である場合のみです。
MaxDragTranslation
どの次元でも、これが MinDragTranslation より大きい場合、翻訳はその範囲内に収まります。
これは制約ではありません; 単に制限内に留まるために、ドラッグディテクターの動作を生成する試みを妨げるだけです。AddConstraintFunction() を参照して、ドラッグにカスタム制約を追加します。
MaxForce
オブジェクトが目標に到達するために適用される最大力。ResponseStyle が Enum.DragDetectorResponseStyle.Physical であり、親オブジェクトが未固定である場合にのみ関連します。
MaxTorque
オブジェクトが目標に到達するために適用される最大トルク。ResponseStyle が Enum.DragDetectorResponseStyle.Physical であり、親オブジェクトが未固定である場合にのみ関連します。
MinDragAngle
これが MaxDragAngle より少ない場合、翻訳はその範囲内に収まります。
これは制約ではありません; 単に制限内に留まるために、ドラッグディテクターの動作を生成する試みを妨げるだけです。AddConstraintFunction() を参照して、ドラッグにカスタム制約を追加します。
関連しているのは、DragStyle が Enum.DragDetectorDragStyle.RotateAxis である場合のみです。
MinDragTranslation
どの次元でも、これが MaxDragTranslation より小さい場合、翻訳はその範囲内に収まります。
これは制約ではありません; 単に制限内に留まるために、ドラッグディテクターの動作を生成する試みを妨げるだけです。AddConstraintFunction() を参照して、ドラッグにカスタム制約を追加します。
Orientation
参照フレームに対する運動軸の回転 YXZ を指定します (参照フレーム自体の向きを変更しません)。線形翻訳と軸回転は、この再定向 Y 軸にあり、平面翻訳は XZ 平面にあります。この値を自動的に変更すると、Axis が更新され、その逆も同様です。
PermissionPolicy
プレイヤーが DragDetector と対話できる許可レベルを制御します。デフォルトは Enum.DragDetectorPermissionPolicy.Everybody です。
ReferenceInstance
CFrame がドラッグディテクターの参照フレームであるインスタンス。The DragFrame は、この CFrame を介して回収できる可能性のあるこの GetReferenceFrame() メソッドに対して表現されます。
このインスタンスが PVInstance である場合、参照フレームはそのピボットになります; Attachment である場合、その世界は CFrame です。それが nil または前者のどちらでもない場合、参照フレームはドラッグディテクターの親の BasePart または Model のピボットに基づきます。
ResponseStyle
提案されたモーションが計算され、潜在的に制限されたら、これは DragDetector に影響を受けるオブジェクトを移動するか、移動しないパラダイムです。オプションについては、Enum.DragDetectorResponseStyle を参照してください。
Responsiveness
より高い値は、オブジェクトが目標により迅速に到達するようにします。関連しているのは、ResponseStyle が Enum.DragDetectorResponseStyle.Physical であり、親オブジェクトが未固定である場合のみです。
RunLocally
[偽] である場合 (デフォルト)、クライアントはカーソルレイを処理し、データモデルを変更し、クライアントに再複製します (DragStart、DragContinue、DragEnd)。
真の場合、クライアントはそれらのシグナルを自身で処理し、サーバーにそれらを複製しません。クライアント LocalScripts は、これらのイベントに応答するために使用でき、RemoteEvents は、サーバーにレプリケートする必要のある結果の変更を送信するために使用できます。
TrackballRadialPullFactor
カーソルがトラックボールの外にあると、DragDetector はボールを曲がらせるようにして回転させる径向き引っ張り回転を適用でき、これによりボールはトラックボールに向かって転がそうとしているようになります。このプロパティは、回転を合計に貢献するために 0 から 1 の倍数です。関連しているのは、DragStyle が Enum.DragDetectorDragStyle.RotateTrackball である場合のみです。
TrackballRollFactor
カーソルがトラックボールの外にあると、DragDetector はボールをビニールレコードに装着したかのように回転させるロール回転を適用できます。このプロパティは、そのロール回転を合計に追加するための 0 から 1の倍数です。関連しているのは、DragStyle が Enum.DragDetectorDragStyle.RotateTrackball である場合のみです。
VRSwitchKeyCode
VR入力中、Enum.KeyCode で動作モードの切り替えを行う。ドラッグディテクターの DragStyle にプライマリモードとセカンダリモードの両方がある場合にのみ適用されます。
方法
AddConstraintFunction
提案された動作を変更または制限する機能を追加します。機能は、CFrame 提案された 動作 の入力を受け取り、CFrame 修正された 動作 または修正されない動作を返します。入力と出力の両方が、参照フレームに対して表現されます。priority で順番に呼び出される複数の機能を追加し、結果をチェーンで渡すことができます。
追加された制約関数を削除するには、返された接続オブジェクトに Disconnect() を呼び出します。
パラメータ
このメソッドを介して追加された関数の優先順位の順序。高い値は低い値より優先されます。
提案された動作を変更または制限する機能。この機能は、提案された動作の入力を受け取り、参照フレームに対して修正された動作または未修正の動作のいずれかを返します。
戻り値
この接続オブジェクトを使用して、制約関数を削除します。
RestartDrag
パラメーター such as DragStyle 、 Axis 、または SecondaryAxis が変更された場合、スクリプトから呼び出してドラッグを再起動することができます。
戻り値
SetDragStyleFunction
パスする関数は、DragStyle が Enum.DragDetectorDragStyle.Scriptable に設定されている場合にのみ使用され、if と only が設定されている場合にのみ使用されます。指定された関数は、DragContinue シグナルに応答すると呼び出され、シグナルのワールドスペースカーソルレイをタイプ Ray で受信し、ワールドスペース内のピボットの希望の場所と方向を含む CFrame を返します。
機能が nil を返す場合、オブジェクトは移動しません。これは、スクリプトがまだ正しい答えを提供するために必要なすべての情報を収集していない場合や、オブジェクトを現在の場所に留めたい一時的な場合など、スクリプトが正しい答えを提供するのに役立ちます。
パラメータ
DragContinue。この関数は、シグナルのワールドスペースカーソルレイを受信し、ワールドスペース内のピボットの必要な場所と方向を含む CFrame を返します。この機能が nil を返す場合、オブジェクトは移動しません。
戻り値
SetPermissionPolicyFunction
パスする関数は、PermissionPolicy が Enum.DragDetectorPermissionPolicy.Scriptable に設定されている場合にのみ使用され、if と only が設定されている場合にのみ使用されます。指定された関数は、特定のプレイヤーの検出器を有効化/無効化するための Player パラメータを受け入れます。また、ドラッグ可能な part 内の 1つのパーツなど、特定の BasePart をクリックしたことを示す Model パラメータを受け取ります;これは、そのパーツの Name 、 Color 、 HasTag() 値、またはその他の詳細に基づいて探知器を有効化/無効化するのに便利です。
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 、 GamepadModeSwitchKeyCode 、または VRSwitchKeyCode を通じて定義された修正入力を押しているかどうかを示します。
DragEnd
ユーザーがオブジェクトをドラッグ中止すると発火します。
パラメータ
DragStart
ユーザーがオブジェクトをドラッグ開始すると、発火します。
パラメータ
ドラッグを開始したカーソルレイキャストのヒットフレーム。
ドラッグを開始したカーソルレイキャストによってヒットしたパーツ。
VR入力装デバイスを使用している場合、カーソル/ポインタ/コントローラを持っている手の CFrame 。
ドラッグディテクターの DragStyle には、プライマリモーションとセカンダリモーションの両方がある場合、このパラメータは、ユーザーが KeyboardModeSwitchKeyCode 、 GamepadModeSwitchKeyCode 、または VRSwitchKeyCode を通じて定義された修正入力を押しているかどうかを示します。