Roblox - 检测网格是否被手击中
Roblox - detect if mesh is hit by hand
我不知道从哪里开始,所以寻求帮助。我想创建一个脚本来检测某个网格是否被玩家右手击中。每次击中网格我都想为玩家增加 1 分。
任何人都可以在正确的方向推动我吗?
谢谢!
编辑:
我在 StarterCharacterScripts 中添加了这个脚本:
game.Players.LocalPlayer.Character:WaitForChild("RightHand").Touched:Connect(function(hit)
local part1 = workspace.CoinsClouds["Meshes/SackOfGoldNoCoins1"]
part1.Touched:Connect(function(hit)
if hit.Name == "RightHand" then
print(hit.Name)
end
end)
end)
当我用右手碰到零件时,它会注册,但每次我用右手碰到零件时,它都会在瞬间注册 5-20 次。见附图。有人知道为什么吗?我希望它只在右手碰到零件时注册一次,或者更好的是,只在用户敲打 part/mesh 时注册。我尝试在找到 RightHand 后添加等待,但这不起作用。
PS!我不知道这是否是编写脚本的正确方法...
下面是您将使用的代码示例。它会检查你的部分是否被右手或左手触摸,它会 运行 你的 if 语句中的任何内容,在这种情况下,无论你的分数是多少,它都会增加 1.
local part = workspace.Part -- reference the part here
local debounce = false --used to check for debounce
part.Touched:Connect(function(hit)
if hit.Name == "RightHand" or "LeftHand" then -- checks if a hand touched it
if not debounce then --Check that debounce variable is not true
debounce = true --currently touching the part
print("hit")
wait(1)
debounce = false
end
end
end)
关于你的新问题,它与去抖动有关。 Roblox 在这里有一整篇文章:https://developer.roblox.com/en-us/articles/Debounce
基本上你必须添加一个新的 if 语句来检查玩家是否已经接触了这个部分,如果它不会重复 if 语句中的内容。上面的代码示例已经过编辑以使用 debounce。
我不知道从哪里开始,所以寻求帮助。我想创建一个脚本来检测某个网格是否被玩家右手击中。每次击中网格我都想为玩家增加 1 分。
任何人都可以在正确的方向推动我吗?
谢谢!
编辑:
我在 StarterCharacterScripts 中添加了这个脚本:
game.Players.LocalPlayer.Character:WaitForChild("RightHand").Touched:Connect(function(hit)
local part1 = workspace.CoinsClouds["Meshes/SackOfGoldNoCoins1"]
part1.Touched:Connect(function(hit)
if hit.Name == "RightHand" then
print(hit.Name)
end
end)
end)
当我用右手碰到零件时,它会注册,但每次我用右手碰到零件时,它都会在瞬间注册 5-20 次。见附图。有人知道为什么吗?我希望它只在右手碰到零件时注册一次,或者更好的是,只在用户敲打 part/mesh 时注册。我尝试在找到 RightHand 后添加等待,但这不起作用。
PS!我不知道这是否是编写脚本的正确方法...
下面是您将使用的代码示例。它会检查你的部分是否被右手或左手触摸,它会 运行 你的 if 语句中的任何内容,在这种情况下,无论你的分数是多少,它都会增加 1.
local part = workspace.Part -- reference the part here
local debounce = false --used to check for debounce
part.Touched:Connect(function(hit)
if hit.Name == "RightHand" or "LeftHand" then -- checks if a hand touched it
if not debounce then --Check that debounce variable is not true
debounce = true --currently touching the part
print("hit")
wait(1)
debounce = false
end
end
end)
关于你的新问题,它与去抖动有关。 Roblox 在这里有一整篇文章:https://developer.roblox.com/en-us/articles/Debounce
基本上你必须添加一个新的 if 语句来检查玩家是否已经接触了这个部分,如果它不会重复 if 语句中的内容。上面的代码示例已经过编辑以使用 debounce。