Unity unet多人游戏同步入门技巧①
1、要进行多人游戏的数据同步,首先我们1.要在场景中有一个物体上,带有Network Manager组件(改组件可以被继承和修改)2.需要有一个表示玩家对象的预制体,且该玩家预制体带有NetworkIdentity组件。
2、我们首先用一张图简要说明使用玩家对象进行同步的流程。绿色是无所不能的绝对权威,蓝色是可以发送数据和命令的,灰色是只有接收数据的份。黄色箭头是[Command]方法调用,橙色箭头是[ClientRpc]方法调用。
3、而现在,我们想要一个“灰色”的对象,可以接受数据,但是又不希望玩家掉线这个对象也消失。实际上,我们只需要新建一个游戏物体,给它一个NetworkIdentity组件。
4、我们给它添加一个脚本,这个脚本要继承自NetworkBehaviour, 里面储存所有想同步的变量。
5、而且,这个脚本本身只有ClientRpc方法。因为没有客户端有办法通过这个非玩家对象发送Command. 但是服务器调用了ClientRpc,这个调用确会传达到所有客户端。原理图如下。
6、这个游戏对象是不会因为玩家掉线而清除的,只是会被禁用。当再次连线的时候,这个对象里面的数据不会改变。当然,它真的没办法和服务器通讯吗?显然不是。我们只要搞到一个本地玩家对象的引用,就可以迂回的发送数据到服务器了。如图所示。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:78
阅读量:74
阅读量:50
阅读量:83
阅读量:33