基于UNET的局域网联机开发

一、几种常用特性的用法

1.[Command] 方法必须以Cmd开头,方法只能被带有网络组件的has authority的物体调用,方法的执行在服务器上。

2.[ClientRpc]方法必须以Rpc开头,方法只能在服务器上调用,方法的执行是在所有的客户端(服务器也是一个客户端)执行。

3.[Client]方法只在客户端执行(并不会像Rpc那样广播,因为服务器也是一个客户端,所以不知道有什么用==)(因为可以只有server端,所以client特性就有用了,host的话就是server和client在一个客户端)。

4.[Server]方法只在服务器上执行。

5[ClientCallback]等同于client特性,区别在于如果方法在服务器上调用不会产生警告。

6.[ServerCallback]等同于server特性,区别在于如果方法在客户端上调用(并不会执行)不会产生警告。

7.[TargetRpc]在服务器上调用,在制定的客户端上执行。方法定义的格式:方法以Target开头,有一个NetworkConnection的参数。一般用法:player在服务器上调用然后只在自己的客户端执行,参数为connectionToClient。

二、NetWorkIdentity组件

若为本地玩家,LocalPlayerAuthoritty一定得勾选,这样在本地客户端就会有权限;若为rpc人物不要勾选,这样在服务器上的rpc就会有权限。只在服务器上执行的一些脚本可以勾选ServerOnly,例如敌人的生成脚本。

三、NetworkAnimator组件

用来同步animator,必须has authority。将需要同步的animator变量勾选起来,对于trigger变量需要使用NetworkAnimator.SetTrigger()方法来进行赋值,才能同步。在客户端刚连接进来时会直接同步到服务器上当前的状态,以后只进行状态的增量同步。

待续···

猜你喜欢

转载自blog.csdn.net/xsheen/article/details/79249563