我正在尝试使用远程事件在 Roblox Studio 中创建一个公告系统来传输数据,但远程事件未触发。
本地脚本(管理员):
...
game.ReplicatedStorage.SG_FlightAnnouncementSystem.Events.startAnnouncement:FireServer(announcement)
print("Client Sent Announcement")
脚本(服务器脚本服务):
local announcementReciever = script.Parent.Parent.Events.startAnnouncement
local announcementSender = script.Parent.Parent.Events.startClientAnnouncement
announcementReciever.OnServerEvent:Connect(function(plr, announcement)
print("Server Received Announcement")
script.Parent.Parent["Sound Effects"].announcementChime.Playing = true
announcementSender:FireAllClients(announcement)
end)
本地脚本(客户端接收器):
startClientAnnouncement.OnClientEvent:Connect(function(announcement)
print("Client Received Announcement")
end)
我希望它输出 2 个客户端打印和 1 个服务器打印,但我只从触发事件中获得 1 个客户端打印。
在 LocalScript 中,您触发位于 ReplicatedStorage 中的事件:
game.ReplicatedStorage.SG_FlightAnnouncementSystem.Events.startAnnouncement
但是在 ServerScriptService 中的脚本中,您注册了一个监听器来监听同样位于 ServerScriptService 中的事件:
local announcementReciever = script.Parent.Parent.Events.startAnnouncement
为了解决这个问题,我会仔细检查您的脚本是否实际上位于 ServerScriptService 中,而不是 ReplicatedStorage 中。如果情况并非如此,我将更新您的脚本的路径以正确定位 ReplicatedStorage 中的事件。
local Events = game.ReplicatedStorage.SG_FlightAnnouncementSystem.Events
local announcementReciever = Events.startAnnouncement
local announcementSender = Events.startClientAnnouncement
announcementReciever.OnServerEvent:Connect(function(plr, announcement)
print("Server Received Announcement")
script.Parent.Parent["Sound Effects"].announcementChime.Playing = true
announcementSender:FireAllClients(announcement)
end)