ClickDetector
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
クリックディテクタ は、Scripts と LocalScripts が、3Dオブジェクトのポインタ入力を受け取ることを許可し、MouseClick イベントを通じて。親になると BasePart 、 Model 、または Folder オブジェクトに作業します。基本的なマウスイベントを検出します:(を)入力/(に)入る力、離退出、左クリック、右クリック。TouchEnabled デバイスのタッチ入力も、クリックイベントを発動させます。
デフォルトのコントロールスクリプトは、 を使用して と対話し、これをオーバーライドするのにも使用できます。ゲームパッドを使用すると、中心のドットが MouseHoverEnter と MouseHoverLeave をトリガーします。バインドアクティベーションボタンは MouseClick を発射します。
MaxActivationDistance は、プレイヤーがクリック可能な期間が終わる前に、クリック検出器からの距離を制限するために使用できます。
ClickDetector クライアントとサーバーの両方でイベントが発火します。Since a は、 またはプレイヤー から派生する場合にのみ実行されるため、スクリプトが実行されないかオブジェクトがクリックできないため、通常、 内に配置する意味はありません。イベントを検出するために が必要な場合、 は代わりにより良い場所になる可能性があります。
入力優先度
複数の ClickDetectors がユーザーの入力を検出できる場合、最も深いものだけがイベントを発射します。2つの ClickDetectors が兄弟である場合、最初が優先されます。
アクションが でバインドされ、同じ入力を使用している場合、 でバインドされたアクションは、クリック検出器のイベントより優先して取得されます。
UserInputService.InputBegan は、ClickDetector イベントより前に発射します。
コードサンプル
このコードを Script 内の ClickDetector 内に配置します。コードサンプルは、親への参照を作成し、プレイヤーを歓迎するメッセージを表示する機能を定義します。最後に、MouseClick イベントを定義された関数に接続します。
local clickDetector = script.Parent
local function onClicked(player)
-- プレイヤーにメッセージを表示する
local msg = Instance.new("Message")
msg.Parent = player:FindFirstChild("PlayerGui")
msg.Text = "Hello, " .. player.Name
wait(2.5)
msg:Destroy()
end
-- 機能をマウスクリックイベントに接続する
clickDetector.MouseClick:Connect(onClicked)
This code sample will allow a part to be clicked to toggle its anchored property. When toggled, the visual appearance of the part is updated (red means anchored, yellow means free).
local part = script.Parent
-- Create a ClickDetector so we can tell when the part is clicked
local cd = Instance.new("ClickDetector", part)
-- This function updates how the part looks based on its Anchored state
local function updateVisuals()
if part.Anchored then
-- When the part is anchored...
part.BrickColor = BrickColor.new("Bright red")
part.Material = Enum.Material.DiamondPlate
else
-- When the part is unanchored...
part.BrickColor = BrickColor.new("Bright yellow")
part.Material = Enum.Material.Wood
end
end
local function onToggle()
-- Toggle the anchored property
part.Anchored = not part.Anchored
-- Update visual state of the brick
updateVisuals()
end
-- Update, then start listening for clicks
updateVisuals()
cd.MouseClick:Connect(onToggle)
概要
プロパティ
マウスがこの ClickDetector または DragDetector の親にホバリングされたときに表示されるカーソルアイコンを設定します。
キャラクターと ClickDetector または DragDetector との最大距離は、プレイヤーがそれと対話できるようにするためです。
イベント
プレイヤーが ClickDetector または DragDetector の親と対話するときに発火します。
親の ClickDetector または DragDetector がプレイヤーによってホバーされると、発火します。
プレイヤーのカーソルが ClickDetector または DragDetector の親から離れたときに発火します。
プレイヤーが右クリックしてマウスカーソルを ClickDetector または DragDetector に配置すると、炎が発生します。
プロパティ
CursorIcon
マウスがこの ClickDetector または DragDetector の親にホバリングされたときに表示されるカーソルアイコンを設定します。このプロパティが空白のままにされると、ディテクターはデフォルトのアイコンを使用します。
カーソルアイコンを変更するには、このプロパティを使用したい画像のアセットIDに設定します。
MaxActivationDistance
このプロパティは、Character と ClickDetector または DragDetector の間の最大距離、スタッドで、プレイヤーがそれと対話できるように制御します。たとえば、最大活動距離が 5 の ClickDetector または DragDetector の中の 10 スタッド内のキャラクターは、範囲外にいるため、探知器を使用できません。
方法
イベント
MouseClick
このイベントは、次の入力を介してプレイヤーが または と対話するとき、または または を介して と対話するときに、以下のいずれかから発動します:
- マウスを持つプラットフォームで、プレイヤーがマウスクリックを終了したとき。
- TouchEnabled プラットフォームで、プレイヤーがタップするとき。
- プラットフォームで、センタードットが同じモデルの上にあり、 A ボタンが押されてリリースされるとき。
プレイヤーの Character が検出器の MaxActivationDistance 内にある必要があることに注意してください。
パラメータ
親の Player または ClickDetector または DragDetector をクリックした人。
MouseHoverEnter
このイベントは、親の Script または LocalScript がプレイヤーによってホバーされると、ClickDetector または DragDetector の親がトリガーされます。これは、探知器との明示的な交流を必要としないため、MouseClick および RightMouseClick イベントを聞くことができます。
ユーザーの入力の性質により、対応する MouseHoverEnter イベントを発射するすべてのMouseHoverLeaveイベントに依存するべきではありません。
パラメータ
親の Player または ClickDetector または DragDetector の上にホバリングを開始した人。
コードサンプル
次のコードは、プレイヤーのカーソルが親の ClickDetector にホバーしたときに「[PlayerName] が親の上に停止しました!」と印刷します。また、プレイヤーのカーソルが親から移動したときに "[PlayerName] hovered off my parent!" が印刷されます。
この例が期待通りに機能するには、親が Script または LocalScript である ClickDetector に配置する必要があります。
local clickDetector = script.Parent:FindFirstChildOfClass("ClickDetector")
clickDetector.MouseHoverEnter:Connect(function(player)
print(player.Name .. " hovered over my parent!")
end)
clickDetector.MouseHoverLeave:Connect(function(player)
print(player.Name .. " hovered off my parent!")
end)
MouseHoverLeave
このイベントは、プレイヤーのカーソルが Script または LocalScript の親から外れたときに、ClickDetector または DragDetector の親から発射します。これは、探知器との明示的な交流を必要としないため、MouseClick および RightMouseClick イベントを聞くことができます。
ユーザーの入力の性質により、対応する MouseHoverLeave イベントの後に発射されるすべてのMouseHoverEnterイベントに依存すべきではない。
パラメータ
Player のカーソルが親の ClickDetector または DragDetector からオフになったもの。
コードサンプル
次のコードは、プレイヤーのカーソルが親の ClickDetector にホバーしたときに「[PlayerName] が親の上に停止しました!」と印刷します。また、プレイヤーのカーソルが親から移動したときに "[PlayerName] hovered off my parent!" が印刷されます。
この例が期待通りに機能するには、親が Script または LocalScript である ClickDetector に配置する必要があります。
local clickDetector = script.Parent:FindFirstChildOfClass("ClickDetector")
clickDetector.MouseHoverEnter:Connect(function(player)
print(player.Name .. " hovered over my parent!")
end)
clickDetector.MouseHoverLeave:Connect(function(player)
print(player.Name .. " hovered off my parent!")
end)
RightMouseClick
このイベントは、プレイヤーがマウスカーソルをクリックして右クリックすると、Script または LocalScript で発動します。プレイヤーが ClickDetector または DragDetector でマウスカーソルをクリックするとき。プレイヤーの Character が検出器の MaxActivationDistance 内にある必要があることに注意してください。
パラメータ
親の Player または ClickDetector または DragDetector の上でマウスカーソルを右クリックした人