ClickDetector

非推奨を表示

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

クリックディテクタ は、ScriptsLocalScripts が、3Dオブジェクトのポインタ入力を受け取ることを許可し、MouseClick イベントを通じて。親になると BasePartModel 、または Folder オブジェクトに作業します。基本的なマウスイベントを検出します:(を)入力/(に)入る力、離退出、左クリック、右クリック。TouchEnabled デバイスのタッチ入力も、クリックイベントを発動させます。

デフォルトのコントロールスクリプトは、 を使用して と対話し、これをオーバーライドするのにも使用できます。ゲームパッドを使用すると、中心のドットが MouseHoverEnterMouseHoverLeave をトリガーします。バインドアクティベーションボタンは 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).

Part Anchored Toggle

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)

概要

プロパティ

イベント

プロパティ

CursorIcon

ContentId
並列読み取り

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

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

MaxActivationDistance

並列読み取り

このプロパティは、CharacterClickDetector または DragDetector の間の最大距離、スタッドで、プレイヤーがそれと対話できるように制御します。たとえば、最大活動距離が 5 の ClickDetector または DragDetector の中の 10 スタッド内のキャラクターは、範囲外にいるため、探知器を使用できません。

方法

イベント

MouseClick

このイベントは、次の入力を介してプレイヤーが または と対話するとき、または または を介して と対話するときに、以下のいずれかから発動します:

  • マウスを持つプラットフォームで、プレイヤーがマウスクリックを終了したとき。
  • TouchEnabled プラットフォームで、プレイヤーがタップするとき。
  • プラットフォームで、センタードットが同じモデルの上にあり、 A ボタンが押されてリリースされるとき。

プレイヤーの Character が検出器の MaxActivationDistance 内にある必要があることに注意してください。

パラメータ

playerWhoClicked: Player

親の Player または ClickDetector または DragDetector をクリックした人。


MouseHoverEnter

このイベントは、親の Script または LocalScript がプレイヤーによってホバーされると、ClickDetector または DragDetector の親がトリガーされます。これは、探知器との明示的な交流を必要としないため、MouseClick および RightMouseClick イベントを聞くことができます。

ユーザーの入力の性質により、対応する MouseHoverEnter イベントを発射するすべてのMouseHoverLeaveイベントに依存するべきではありません。

パラメータ

playerWhoHovered: Player

親の 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イベントに依存すべきではない。

パラメータ

playerWhoHovered: Player

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 内にある必要があることに注意してください。

パラメータ

playerWhoClicked: Player

親の Player または ClickDetector または DragDetector の上でマウスカーソルを右クリックした人