ClickDetector
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Tıklama Dedektörü 3D nesneler üzerindeki işaret girişini almaya izin verir Scripts ve LocalScripts 3D nesneler üzerindeki işaret girişini almaya izin verir MouseClick etkinliği aracılığıyla.Ebeveyn olarak BasePart , Model veya Folder nesnelere yönlendirildiğinde çalışır.Temel fare olaylarını algılarlar: gir, ayrıl, sol tık ve sağ tık.TouchEnabled cihazlardaki dokunma girişi de tıklama olaylarını ateşler.
Varsayılan kontrol senaryoları, ButtonR2 ile etkileşime girmek için ClickDetectors kullanarak, bunu geçersiz kılmak için de kullanılabilen ContextActionService:BindActivate() kullanır.Oyun konsolları kullanırken, merkez noktası MouseHoverEnter ve MouseHoverLeave tetikler.Bağlı aktivasyon düğmesi ateş eder MouseClick .
MaxActivationDistance bir oyuncunun bir tıklama dedektöründen uzak olabileceği mesafeyi sınırlandırmak için kullanılabilir, artık tıklanabilir olmadığında.
ClickDetector etkinlikleri hem istemci hem de sunucuda ateşlenir.Bir sadece bir veya oyuncu 'dan inerse yalnızca çalışır, genellikle bir içine koymak yararlı değildir, çünkü kod çalışmayacak veya nesne tıklanabilir olmayacaktır.Etkinlikleri tespit etmek için bir gerekiyorsa, bunun yerine daha iyi bir yer olabilir.
Giriş Önceliği
Birden fazla ClickDetectors kullanıcı girişini algılayabilirse, yalnızca en derin olanı olayları ateş edecektir. Eğer iki ClickDetectors kardeşse, ilki öncelik kazanacaktır.
Bir eylem, ContextActionService ile bağlıysa aynı girişi bir ClickDetector olarak kullanırsa, eylem, ContextActionService ile bağlıysa, tıklama dedektörünün olaylarına öncelik verecektir.
UserInputService.InputBegan etkinliklerden önce ateşlenecek ClickDetector olaylardan önce ateşlenecek.
Kod Örnekleri
Place this code inside a Script inside a ClickDetector. The code sample creates a reference to the parent and defines a function to show a message that greets a player. Finally, it connects the MouseClick event to the defined function.
local clickDetector = script.Parent
local function onClicked(player)
-- Show a message to the player
local msg = Instance.new("Message")
msg.Parent = player:FindFirstChild("PlayerGui")
msg.Text = "Hello, " .. player.Name
wait(2.5)
msg:Destroy()
end
-- Connect the function to the MouseClick event
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)
Özet
Özellikler
Fare, bu ClickDetector veya DragDetector 'in ebeveyni üzerinde gezindiğinde görüntülenmesi için işaretçi simgesini ayarlar.
Bir karakter ve ClickDetector veya DragDetector oyuncunun onunla etkileşime girebilmesi için oyuncuyla arasındaki maksimum mesafe.
Etkinlikler
Bir oyuncu bir ClickDetector veya DragDetector 'in ebeveyniyle etkileşim kurduğunda ateş eder.
Bir oyuncu tarafından ebeveynine ClickDetector veya DragDetector dokunduğunda ateş eder.
Bir oyuncunun işaretçisi bir ClickDetector veya DragDetector 'in ebeveyninden uzaklaştığında ateş eder.
Bir oyuncu sağ tıkladığında fare imlecini bir ClickDetector veya DragDetector üzerinde açar.
Özellikler
CursorIcon
Fare, bu ClickDetector veya DragDetector 'in ebeveyni üzerinde gezindiğinde görüntülenmesi için işaretçi simgesini ayarlar.Bu özellik boş bırakılırsa, dedektör varsayılan ikonu kullanacaktır.
Okutma simgedeğiştirmek için, bu özelliği kullanmak istediğiniz görüntünün varlık kimliğine ayarlayın.
MaxActivationDistance
Bu özellik, bir Character ile oyuncunun onunla etkileşime girebilmesi için ClickDetector veya DragDetector arasındaki maksimum mesafeyi kontrol eder.durum, maksimum aktivasyon mesafesi 5 olan bir ClickDetector veya DragDetector ile 10 çubuğun içindeki bir karakter, menzilden çıktığı için dedektörü kullanamayacaktır.
Yöntemler
Etkinlikler
MouseClick
Bu olay, bir oyuncu bir Script veya LocalScript aracılığıyla bir ClickDetector veya DragDetector ile etkileşime girdiğinde aşağıdaki girişler aracılığıyla ateşlenir:
- Fare olan platformlarda, oyuncu fare tıklamalarını bıraktığında.
- On TouchEnabled platformlarında, oyuncu dokunduğunda.
- On GamepadEnabled platformlarında, merkez noktası aynı modelin üzerinde olduğunda ve A düğmesi basıldı ve serbest bırakıldığında.
oyuncuCharacter içinde olması gerektiğini unutmayın, dedektörün MaxActivationDistance içinde olmalıdır.
Parametreler
Bir Player , bir ClickDetector veya DragDetector 'in ebeveynine tıklayan kişi.
MouseHoverEnter
Bu olay, bir Script veya LocalScript ebeveynin bir ClickDetector veya DragDetector üzerinde gezildiğinde bir oyuncu tarafından ateşlenir.Bu, dedektörle açık bir etkileşim gerektirmez, için MouseClick ve RightMouseClick etkinliklerini dinleyebilirsiniz.
Kullanıcı girişinin doğası nedeniyle, bir karşılık gelen MouseHoverEnter etkinliği ateşleyen tüm MouseHoverLeave etkinliklere bağımlı olmamalısınız.
Parametreler
Bir Player , bir ClickDetector veya DragDetector 'in ebeveyni üzerinde gezinmeye başlayan kişi.
Kod Örnekleri
The following code will print "[PlayerName] hovered over my parent!" when a player's cursor hovers over the ClickDetector parent. It will also print "[PlayerName] hovered off my parent!" when the player's cursor moves off the ClickDetector parent.
In order for this example to work as expected, it must be placed in a Script or LocalScript whose parent is a 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
Bu olay, bir oyuncunun işaretçisi bir Script veya LocalScript 'in ebeveyninden uzaklaştığında, bir oyuncunun işaretçisinden ateşlenir ClickDetector veya DragDetector .Bu, dedektörle açık bir etkileşim gerektirmez, için MouseClick ve RightMouseClick etkinliklerini dinleyebilirsiniz.
Kullanıcı girişinin doğası nedeniyle, bir karşılık gelen MouseHoverLeave olaydan sonra ateşlenen tüm MouseHoverEnter olaylara bağımlı olmamalısınız.
Parametreler
Fareniz bir Player 'in ebeveyninden uzaklaştığı ClickDetector veya DragDetector 'in ebeveyninden uzaklaştığı çizgisi.
Kod Örnekleri
The following code will print "[PlayerName] hovered over my parent!" when a player's cursor hovers over the ClickDetector parent. It will also print "[PlayerName] hovered off my parent!" when the player's cursor moves off the ClickDetector parent.
In order for this example to work as expected, it must be placed in a Script or LocalScript whose parent is a 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
Bu olay, bir oyuncunun fare imlecini bir Script veya LocalScript üzerinde bir ClickDetector veya DragDetector üzerinde sağ tıkladığında çıkar.Oyuncunun Character içinde olması gerektiğini unutmayın, dedektörün MaxActivationDistance içinde olması gerekiyor.
Parametreler
Farenin imlecini bir Player 'in ebeveynine sağ tıklayan kişi, bir ClickDetector veya DragDetector 'in ebeveynine sağ tıklıyor.