1. Roblox StudioのClick Detectorとは
Roblox Studioには、Click Detectorという機能があります。Click Detectorを使うことで、クリックイベントを実装することができます。指定のオブジェクトをクリックすると特定の処理が行われるなどが可能です。
以下では、Click Detectorを使用して、クリックイベントでオブジェクトのプロパティを変更してみます。
2. 使用する機能と主なコード
【機能】
・Click Detector
【コード】
・MouseClick
・MouseHoverEnter
・MouseHoverLeave
・RightMouseClick
3. Click Detectorの簡単な使い方
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。
Partを適当な位置に設置します。
Partの中にClickDetectorとSctiptを追加します。
Sctiptに以下のコードを追加します。
local part = script.Parent
local detector = part.ClickDetector
変数partにSctiptの親のPartを代入し、
変数detectorにPartの子のClickDetectorを代入しています。
さらに、以下のコードを追加します。
local part = script.Parent
local detector = part.ClickDetector
-- クリックされた時に発生するイベント
detector.MouseClick:connect(function(player)
print("MouseClick")
end)
「detector.MouseClick:connect()」が、「クリックされた場合」のクリックイベントを示しています。クリックされた場合、「MouseClick」と表示するようにしています。
この状態で実行してみます。
「MouseClick」と表示されました。
次に、Partをクリックしたら、色が変化するようにしてみます。
local part = script.Parent
local detector = part.ClickDetector
-- クリックされた時に発生するイベント
detector.MouseClick:connect(function(player)
print("MouseClick")
-- partの色が赤以外なら赤にする。赤なら黒にする
if part.BrickColor ~= BrickColor.new("Really red") then
part.BrickColor = BrickColor.new("Really red")
else
part.BrickColor = BrickColor.new("Really black")
end
end)
実行してみます。
クリックするたびにPartの色が変化しました。
次は、マウスがPartに乗った時に発生するイベントを追加してみます。
local part = script.Parent
local detector = part.ClickDetector
-- クリックされた時に発生するイベント
detector.MouseClick:connect(function(player)
print("MouseClick")
-- partの色が赤以外なら赤にする。赤なら黒にする
if part.BrickColor ~= BrickColor.new("Really red") then
part.BrickColor = BrickColor.new("Really red")
else
part.BrickColor = BrickColor.new("Really black")
end
end)
-- マウスが乗った時に発生するイベント
detector.MouseHoverEnter:connect(function(player)
print("MouseHoverEnter")
-- partのサイズを大きくする
part.Size = Vector3.new(4, 4, 4)
end)
「detector.MouseHoverEnter:connect()」は、マウスが乗った時に発生するイベントを示しています。マウスが乗った場合、Partのサイズを大きくしています。
実行してみます。
Partにマウスを乗せると、Partが大きくなりました。しかし、マウスがPartから離れても大きさが元にもどりません。マウスが離れた時のイベントを追加してみます。
local part = script.Parent
local detector = part.ClickDetector
-- クリックされた時に発生するイベント
detector.MouseClick:connect(function(player)
print("MouseClick")
-- partの色が赤以外なら赤にする。赤なら黒にする
if part.BrickColor ~= BrickColor.new("Really red") then
part.BrickColor = BrickColor.new("Really red")
else
part.BrickColor = BrickColor.new("Really black")
end
end)
-- マウスが乗った時に発生するイベント
detector.MouseHoverEnter:connect(function(player)
print("MouseHoverEnter")
-- partのサイズを大きくする
part.Size = Vector3.new(4, 4, 4)
end)
-- マウスが離れた時に発生するイベント
detector.MouseHoverLeave:connect(function(player)
print("MouseHoverLeave")
-- partのサイズを元に戻す
part.Size = Vector3.new(4, 1, 2)
end)
「detector.MouseHoverLeave:connect()」は、マウスが離れた時に発生するイベントを示しています。マウスがPartから離れた場合、Partのサイズを元に戻すようにしています。
実行してみます。
Partからマウスが離れたら、Partの大きさが元に戻りました。
最後に、右クリックした時に発生するイベントを追加してみます。
local part = script.Parent
local detector = part.ClickDetector
-- クリックされた時に発生するイベント
detector.MouseClick:connect(function(player)
print("MouseClick")
-- partの色が赤以外なら赤にする。赤なら黒にする
if part.BrickColor ~= BrickColor.new("Really red") then
part.BrickColor = BrickColor.new("Really red")
else
part.BrickColor = BrickColor.new("Really black")
end
end)
-- マウスが乗った時に発生するイベント
detector.MouseHoverEnter:connect(function(player)
print("MouseHoverEnter")
-- partのサイズを大きくする
part.Size = Vector3.new(4, 4, 4)
end)
-- マウスが離れた時に発生するイベント
detector.MouseHoverLeave:connect(function(player)
print("MouseHoverLeave")
-- partのサイズを元に戻す
part.Size = Vector3.new(4, 1, 2)
end)
-- 右クリックした時に発生するイベント
detector.RightMouseClick:connect(function(player)
print("MouseRightClick")
-- partのtransparencyを0.8にする
part.Transparency = 0.8
end)
「detector.RightMouseClick:connect()」は、Partが右クリックされた時に発生するイベントを示しています。右クリックされた場合、Partを透明にしてみます。
実行してみます。
Partを右クリックしたら、Partが透明になりました。
4. まとめ
・ClickDetectorを使用することでクリックイベントを実装できる
コメント