我有点沉迷于 Roblox 游戏中播放的本地音乐。
我的游戏有一个设置,其中脚本将五个声音文件插入到玩家的 GUI 中。当服务器创建时,这些声音确实会发送到玩家 GUI 中。
为了播放声音,有一些部件设置可以检查与玩家的碰撞,当它们检测到玩家时,他们将在玩家的 GUI 中启动五种声音之一。
其中一个部分的代码如下所示:
script.Parent.Touched:connect(function(hit)
if hit.Parent:FindFirstChild('Humanoid') then
if game.Players[hit.Parent.Name].PlayerGui.Sound2.TimePosition < 1 then
game.Players[hit.Parent.Name].PlayerGui.Sound2.Volume = 1
game.Players[hit.Parent.Name].PlayerGui.Sound2:Play()
game.Players[hit.Parent.Name].PlayerGui.Sound1:Stop()
game.Players[hit.Parent.Name].PlayerGui.Sound4:Stop()
game.Players[hit.Parent.Name].PlayerGui.Sound3:Stop()
game.Players[hit.Parent.Name].PlayerGui.Sound5:Stop()
end
end
end)
正如我测试的那样,这个脚本确实可以很好地检测玩家。该系统确实可以在 Roblox Studio 测试区域中运行,但是当使用该系统启动服务器时,不会播放任何声音。
服务器实际上将声音设置为播放,并且它们从服务器端显示为在客户端上播放,但是客户端不会将它们视为正在播放并且它们不会播放。
我确实启用了过滤功能,但这不会影响它...
最佳答案
我相信这很简单。我认为这是 SoundService 的一个功能。如果这不起作用,请纠正我,但我相信就是这样
soundobj = game.Players[hit.Parent.Name].PlayerGui.Sound2
game:GetService('SoundService'):PlayLocalSound(soundobj)
参见https://wiki.roblox.com/index.php?title=API:Class/SoundService/PlayLocalSound了解更多信息
关于audio - 在 Roblox 上本地播放音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51429775/