DragDetector

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

インスタンスは、ドアや引き出しの開口、パーツのスライドなど、エクスペリエンスで3Dオブジェクトとの相互作用を促進し、協力します。主な機能には以下があります:

  • すべての入力 (マウス、タッチ、ゲームパッド、および VR) を通じてドラッグできるように、 または を任意の または の下に配置し、コードラインを 1つも使用しないでください。

  • 複数の DragStyle オプションから選択し、オブジェクトが ResponseStyle を通じて動作にどのように応答するかを定義し、オプションで轴または移動制限を適用します。

  • スクリプトは、ドラッグされたオブジェクトの操作に応答して、UIをドライブしたり、スライディングウォールスイッチダイマーに基づいて部屋の照明レベルを調整したり、論理的な決定を下すことができます。

  • プレイヤーは固定されたパーツやモデルを操作でき、リリース時に置いた場所に正確に残ります。

  • DragDetectors 作業室では、 使用していない限り選択移動スケール 、または 回転 ツールを使用しない限り、編集中にドラッグ可能なオブジェクトをテストし、調整するのが簡単になります。

詳細と使用例については、3D ドラッグ検出器 ガイドを参照してください。

概要

プロパティ

ClickDetector から継承した プロパティ

方法

イベント

ClickDetector から継承した イベント

プロパティ

ActivatedCursorIcon

ContentId
並列読み取り

この DragDetector の親にマウスが有効になったときに表示されるカーソルアイコンを設定します。このプロパティが空白のままにされると、ディテクターはデフォルトのアイコンを使用します。

有効になったカーソルアイコンを変更するには、このプロパティを使用したい画像のアセットIDに設定します。

ApplyAtCenterOfMass

並列読み取り

[偽] (デフォルト) の場合、ユーザーがクリックしたポイントで制約力が適用されます。真になると、力がオブジェクトの質量の中心に適用されます。関連しているのは、ResponseStyleEnum.DragDetectorResponseStyle.Physical であり、親オブジェクトが未固定である場合のみです。

複製されていません
並列読み取り

参照フレームに対して表現される動作の主軸。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 が更新され、その逆も同様です。

DragFrame

並列読み取り

が設定する定されている場合、参照フレームに対するピボット;そうでない場合、ドラッグの開始時にピボットのフレームに対する 。

並列読み取り

プロポーズされた動作を生成するために使用されるパラダイム、ストリームのカーソルレイを指定されます。オプションは Enum.DragDetectorDragStyle を参照してください。

Enabled

並列読み取り

真である場合、DragDetector はユーザーの入力に応答します; 偽である場合、そうではありません。

GamepadModeSwitchKeyCode

並列読み取り

ゲームパッド入力中、Enum.KeyCode で移動モードの切り替え。ドラッグディテクターの DragStyle にプライマリモードとセカンダリモードの両方がある場合にのみ適用されます。

KeyboardModeSwitchKeyCode

並列読み取り

キーボード入力中、Enum.KeyCode で移動モードの切り替え。ドラッグディテクターの DragStyle にプライマリモードとセカンダリモードの両方がある場合にのみ適用されます。

MaxDragAngle

並列読み取り

これが MinDragAngle より大きい場合、翻訳はその範囲内に収まります。

これは制約ではありません; 単に制限内に留まるために、ドラッグディテクターの動作を生成する試みを妨げるだけです。AddConstraintFunction() を参照して、ドラッグにカスタム制約を追加します。

関連しているのは、DragStyleEnum.DragDetectorDragStyle.RotateAxis である場合のみです。

MaxDragTranslation

並列読み取り

どの次元でも、これが MinDragTranslation より大きい場合、翻訳はその範囲内に収まります。

これは制約ではありません; 単に制限内に留まるために、ドラッグディテクターの動作を生成する試みを妨げるだけです。AddConstraintFunction() を参照して、ドラッグにカスタム制約を追加します。

MaxForce

並列読み取り

オブジェクトが目標に到達するために適用される最大力。ResponseStyleEnum.DragDetectorResponseStyle.Physical であり、親オブジェクトが未固定である場合にのみ関連します。

MaxTorque

並列読み取り

オブジェクトが目標に到達するために適用される最大トルク。ResponseStyleEnum.DragDetectorResponseStyle.Physical であり、親オブジェクトが未固定である場合にのみ関連します。

MinDragAngle

並列読み取り

これが MaxDragAngle より少ない場合、翻訳はその範囲内に収まります。

これは制約ではありません; 単に制限内に留まるために、ドラッグディテクターの動作を生成する試みを妨げるだけです。AddConstraintFunction() を参照して、ドラッグにカスタム制約を追加します。

関連しているのは、DragStyleEnum.DragDetectorDragStyle.RotateAxis である場合のみです。

MinDragTranslation

並列読み取り

どの次元でも、これが MaxDragTranslation より小さい場合、翻訳はその範囲内に収まります。

これは制約ではありません; 単に制限内に留まるために、ドラッグディテクターの動作を生成する試みを妨げるだけです。AddConstraintFunction() を参照して、ドラッグにカスタム制約を追加します。

Orientation

並列読み取り

参照フレームに対する運動軸の回転 YXZ を指定します (参照フレーム自体の向きを変更しません)。線形翻訳と軸回転は、この再定向 Y 軸にあり、平面翻訳は XZ 平面にあります。この値を自動的に変更すると、Axis が更新され、その逆も同様です。

並列読み取り

プレイヤーが DragDetector と対話できる許可レベルを制御します。デフォルトは Enum.DragDetectorPermissionPolicy.Everybody です。

ReferenceInstance

並列読み取り

CFrame がドラッグディテクターの参照フレームであるインスタンス。The DragFrame は、この CFrame を介して回収できる可能性のあるこの GetReferenceFrame() メソッドに対して表現されます。

このインスタンスが PVInstance である場合、参照フレームはそのピボットになります; Attachment である場合、その世界は CFrame です。それが nil または前者のどちらでもない場合、参照フレームはドラッグディテクターの親の BasePart または Model のピボットに基づきます。

並列読み取り

提案されたモーションが計算され、潜在的に制限されたら、これは DragDetector に影響を受けるオブジェクトを移動するか、移動しないパラダイムです。オプションについては、Enum.DragDetectorResponseStyle を参照してください。

Responsiveness

並列読み取り

より高い値は、オブジェクトが目標により迅速に到達するようにします。関連しているのは、ResponseStyleEnum.DragDetectorResponseStyle.Physical であり、親オブジェクトが未固定である場合のみです。

RunLocally

並列読み取り

[偽] である場合 (デフォルト)、クライアントはカーソルレイを処理し、データモデルを変更し、クライアントに再複製します (DragStartDragContinueDragEnd)。

真の場合、クライアントはそれらのシグナルを自身で処理し、サーバーにそれらを複製しません。クライアント LocalScripts は、これらのイベントに応答するために使用でき、RemoteEvents は、サーバーにレプリケートする必要のある結果の変更を送信するために使用できます。

SecondaryAxis

複製されていません
並列読み取り

動作のセカンダリ軸。同じパラダイムを使用したオリエンテーションと関連しています Attachments

TrackballRadialPullFactor

並列読み取り

カーソルがトラックボールの外にあると、DragDetector はボールを曲がらせるようにして回転させる径向き引っ張り回転を適用でき、これによりボールはトラックボールに向かって転がそうとしているようになります。このプロパティは、回転を合計に貢献するために 0 から 1 の倍数です。関連しているのは、DragStyleEnum.DragDetectorDragStyle.RotateTrackball である場合のみです。

TrackballRollFactor

並列読み取り

カーソルがトラックボールの外にあると、DragDetector はボールをビニールレコードに装着したかのように回転させるロール回転を適用できます。このプロパティは、そのロール回転を合計に追加するための 0 から 1の倍数です。関連しているのは、DragStyleEnum.DragDetectorDragStyle.RotateTrackball である場合のみです。

VRSwitchKeyCode

並列読み取り

VR入力中、Enum.KeyCode で動作モードの切り替えを行う。ドラッグディテクターの DragStyle にプライマリモードとセカンダリモードの両方がある場合にのみ適用されます。

WorldAxis

複製されていません
並列読み取り

ワールドスペースで表現される 。同じパラダイムを使用したオリエンテーションと関連しています。

WorldSecondaryAxis

複製されていません
並列読み取り

ワールドスペースで表現される 。同じパラダイムを使用したオリエンテーションと関連しています。

方法

AddConstraintFunction

提案された動作を変更または制限する機能を追加します。機能は、CFrame 提案された 動作 の入力を受け取り、CFrame 修正された 動作 または修正されない動作を返します。入力と出力の両方が、参照フレームに対して表現されます。priority で順番に呼び出される複数の機能を追加し、結果をチェーンで渡すことができます。

追加された制約関数を削除するには、返された接続オブジェクトに Disconnect() を呼び出します。

パラメータ

priority: number

このメソッドを介して追加された関数の優先順位の順序。高い値は低い値より優先されます。

既定値: ""
function: function

提案された動作を変更または制限する機能。この機能は、提案された動作の入力を受け取り、参照フレームに対して修正された動作または未修正の動作のいずれかを返します。

既定値: ""

戻り値

この接続オブジェクトを使用して、制約関数を削除します。

GetReferenceFrame

動作が表現されている参照 CFrame を返します;詳細については、ReferenceInstance プロパティを参照してください。


戻り値

動作が表現される参照 CFrame

RestartDrag

()

パラメーター such as DragStyleAxis 、または SecondaryAxis が変更された場合、スクリプトから呼び出してドラッグを再起動することができます。


戻り値

()

SetDragStyleFunction

()

パスする関数は、DragStyleEnum.DragDetectorDragStyle.Scriptable に設定されている場合にのみ使用され、if と only が設定されている場合にのみ使用されます。指定された関数は、DragContinue シグナルに応答すると呼び出され、シグナルのワールドスペースカーソルレイをタイプ Ray で受信し、ワールドスペース内のピボットの希望の場所と方向を含む CFrame を返します。

機能が nil を返す場合、オブジェクトは移動しません。これは、スクリプトがまだ正しい答えを提供するために必要なすべての情報を収集していない場合や、オブジェクトを現在の場所に留めたい一時的な場合など、スクリプトが正しい答えを提供するのに役立ちます。

パラメータ

function: function

DragContinue。この関数は、シグナルのワールドスペースカーソルレイを受信し、ワールドスペース内のピボットの必要な場所と方向を含む CFrame を返します。この機能が nil を返す場合、オブジェクトは移動しません。

既定値: ""

戻り値

()

SetPermissionPolicyFunction

()

パスする関数は、PermissionPolicyEnum.DragDetectorPermissionPolicy.Scriptable に設定されている場合にのみ使用され、if と only が設定されている場合にのみ使用されます。指定された関数は、特定のプレイヤーの検出器を有効化/無効化するための Player パラメータを受け入れます。また、ドラッグ可能な part 内の 1つのパーツなど、特定の BasePart をクリックしたことを示す Model パラメータを受け取ります;これは、そのパーツの NameColorHasTag() 値、またはその他の詳細に基づいて探知器を有効化/無効化するのに便利です。


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 パラメータを受け入れます。また、ドラッグ可能な part 内の 1つのパーツなど、特定の BasePart をクリックしたことを示す Model パラメータも受け取ります;これは、そのパーツの NameColorHasTag() 値、またはその他の詳細に基づいて探知器を有効化/無効化するのに便利です。

既定値: ""

戻り値

()

イベント

DragContinue

ユーザーが DragStart が開始された後もオブジェクトをドラッグ続行すると、ファイアが発生します。

パラメータ

playerWhoDragged: Player

PlayerDragStart を介してドラッグを開始し、現在ドラッグを続行している。

cursorRay: Ray

Ray カーソルから発し、シーンに向かっている

viewFrame: CFrame

CFrame ユーザーの Camera

vrInputFrame: OptionalCoordinateFrame

VR入力装デバイスを使用している場合、カーソル/ポインタ/コントローラを持っている手の CFrame

isModeSwitchKeyDown: boolean

ドラッグディテクターの DragStyle には、プライマリモーションとセカンダリモーションの両方がある場合、このパラメータは、ユーザーが KeyboardModeSwitchKeyCodeGamepadModeSwitchKeyCode 、または VRSwitchKeyCode を通じて定義された修正入力を押しているかどうかを示します。


DragEnd

ユーザーがオブジェクトをドラッグ中止すると発火します。

パラメータ

playerWhoDragged: Player

ドラッグを開始し、DragStart を通じてドラッグを終了したPlayer


DragStart

ユーザーがオブジェクトをドラッグ開始すると、発火します。

パラメータ

playerWhoDragged: Player

Player ドラッグを開始した人

cursorRay: Ray

Ray カーソルから発し、シーンに向かっている

viewFrame: CFrame

CFrame ユーザーの Camera

hitFrame: CFrame

ドラッグを開始したカーソルレイキャストのヒットフレーム。

clickedPart: BasePart

ドラッグを開始したカーソルレイキャストによってヒットしたパーツ。

vrInputFrame: OptionalCoordinateFrame

VR入力装デバイスを使用している場合、カーソル/ポインタ/コントローラを持っている手の CFrame

isModeSwitchKeyDown: boolean

ドラッグディテクターの DragStyle には、プライマリモーションとセカンダリモーションの両方がある場合、このパラメータは、ユーザーが KeyboardModeSwitchKeyCodeGamepadModeSwitchKeyCode 、または VRSwitchKeyCode を通じて定義された修正入力を押しているかどうかを示します。