编辑修改(2018/01/14)
- 所有的关键性决策都要放到服务器去执行
- 并且注意决策中间的变量是否要同步给客户端,否则客户端可能达不到效果
- 生成Actor需要注意是否Replicate是否为真,官方Actor所有权是在Actor为False的情况下的
- 执行/execute是指
- 呼叫/call是指
- ReplicatedUsing和NetMulticast都是客户端执行的 链接
- 若客户端想要执行某些操作,如生成Actor。那就得在服务器上实现代码,以广播的形式告诉所有客户端执行事件,客户端执行的是在服务器上运行的事件,如图
- GameInstance单独存在每个链接中/或者说是窗口中,服务器上修改的变量不会同步到所有的客户端
- 在客户端的GameInstance是无法在服务器上转换为GameMode的,也是上面说了单独存在的原因
- (在PlayerController中,蓝图事件在执行的时候,如果是客户端,优先执行非网络事件,在执行网络事件,服务器则反之)
- 如果客户端不呼叫本身的服务器事件/网络事件,那么客户端会直接跳过另一个蓝图的服务器事件