ReplicatedFirst中的RemoteEvent不会触发OnClientEvent处理程序

问题描述 投票:0回答:1

[当服务器说一切准备就绪时,我正在尝试使加载屏幕消失,但是我期望的那样,LocalScript中的事件侦听器没有触发。

在ReplicatedFirst的LocalScript中,我有这个:

print("Hello world - Local Script!", tick())
game.ReplicatedFirst.RemoteEvent.OnClientEvent:Connect(function()
    print("ReplicatedFirst event signal received!", tick())
end)

并且在ServerScripts的脚本中,我有这个:

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事件信号!(时间戳)”。

docs 推荐您使用的ReplicatedStorage

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

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

lua roblox
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.