我正在ROBLOX为我的UFO制作一个脚本,每当UFO从头顶飞过它就会播放音频。我制作了一个如下脚本
while true do
if script.Parent.Parent.Velocity.Magnitude>10 then
if local h = hit.Parent:FindFirstChild("Humanoid")
then script.parent:play()
wait(5)
else
wait()
end
wait()
end
任何更正都将是真正的帮助!
谢谢!
答案 0 :(得分:0)
除了一切之外,在根本上存在很多语法错误以及实现错误,在你给我们的所有代码块中都没有做你想做的事。< / p>
但是,这里有解决方案的基本概念:
local newThread = coroutine.create(function()
while true do
for i, v in game.Players:GetPlayers()
local playerListener = workspace[v.Name]["Head"]
local ufoListener = workspace.Ufo:FindFirstChild('Listener')
local magnitude = (playerListener.Position - ufoListener.Position).magnitude
if (magnitude > 10) then
script.Parent:play()
else
wait(0.5)
end
end
end
end)
coroutine.resume(newThread)
基本上,这里是破败:我们正在使用协同程序,所以这个循环并没有永久地产生这个线程。有一些更复杂的途径使用可绑定事件,也许是一些服务器 - 客户端握手,当从LocalPlayer触发时,它调用服务器中的事件 - 但我离题了。这应该是完美的满足您的需求而不会让您太过分混乱。