Lua ReplicatedFirst中的RemoteEvents不会触发OnClient事件处理程序

Lua ReplicatedFirst中的RemoteEvents不会触发OnClient事件处理程序,lua,roblox,Lua,Roblox,当服务器说一切就绪时,我试图使加载屏幕消失,但是LocalScript中的事件侦听器没有在我期望的时候启动 在ReplicatedFirst中的LocalScript中,我有以下内容: print("Hello world - Local Script!", tick()) game.ReplicatedFirst.RemoteEvent.OnClientEvent:Connect(function() print("ReplicatedFirst event signal receiv

当服务器说一切就绪时,我试图使加载屏幕消失,但是LocalScript中的事件侦听器没有在我期望的时候启动

在ReplicatedFirst中的LocalScript中,我有以下内容:

print("Hello world - Local Script!", tick())
game.ReplicatedFirst.RemoteEvent.OnClientEvent:Connect(function()
    print("ReplicatedFirst event signal received!", tick())
end)
print("Hello world! - Server", tick())
while true do
    print("Firing event from server...", tick())
    game.ReplicatedFirst.RemoteEvent:FireAllClients()
    wait(3.0)
end
在ServerScripts中的脚本中,我有以下内容:

print("Hello world - Local Script!", tick())
game.ReplicatedFirst.RemoteEvent.OnClientEvent:Connect(function()
    print("ReplicatedFirst event signal received!", tick())
end)
print("Hello world! - Server", tick())
while true do
    print("Firing event from server...", tick())
    game.ReplicatedFirst.RemoteEvent:FireAllClients()
    wait(3.0)
end
在输出中,我得到如下结果:

  Hello world! - Server 1585699530.2938
  Firing event from server... 1585699530.2945
  Hello world - Local Script! 1585699531.4771
  Firing event from server... 1585699533.3019
  Firing event from server... 1585699536.3193
  Firing event from server... 1585699539.3349
  Firing event from server... 1585699542.3354
在每一行“从服务器触发事件…”之后,我都会看到消息“ReplicatedFirst event signal received!(时间戳)”

建议您使用:

为了使服务器和客户端都能利用远程事件,RemoteEvent对象本身必须位于双方都能看到的位置。因此,我们建议您将RemoteEvent存储在ReplicatedStorage中,尽管在某些情况下,将其存储在工作区或工具中是合适的


但我的假设是,那是一个共享的位置。不是这样吗?ReplicatedFirst不是共享位置吗?还是我做错了什么?

事实证明,ReplicatedFirst在客户机/服务器复制方面有一些奇怪的规则。应该考虑到ReplicatedFirst的内容由服务器拥有,当一个播放器加入时,内容被复制而不是复制到新播放器


但是,由于每个播放器都有自己的内容副本,因此尝试连接到ReplicatedFirst中托管的RemoteEvents不会抛出任何错误,但也不会成功。

您的答案似乎是正确的,我讨厌它。谢谢你把它传下去。我必须找到一种喜欢这种行为的方法,而不是我发现我可以将我的RemoteEvents放入ReplicatedStorage,并且仍然可以在ReplicatedFirst脚本中访问它们。我只是需要小心我如何加载它们。我发现,将赋值移动到
spawn()
函数中,并在尝试使用它时检查它是否为null,可以克服竞争条件。