Lua ReplicatedFirst中的RemoteEvents不会触发OnClient事件处理程序
当服务器说一切就绪时,我试图使加载屏幕消失,但是LocalScript中的事件侦听器没有在我期望的时候启动 在ReplicatedFirst中的LocalScript中,我有以下内容: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
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,可以克服竞争条件。